Changelog:
==========
- Dropped support for Python 3.8
- Fixed 100% CPU use on asyncio while waiting for an exiting task group to
finish while said task group is within a cancelled cancel scope
- Fixed cancel scopes on asyncio not propagating CancelledError on exit when
the enclosing cancel scope has been effectively cancelled
- Fixed asyncio task groups not yielding control to the event loop at exit if
there were no child tasks to wait on
- Fixed inconsistent task uncancellation with asyncio cancel scopes belonging
to a task group when said task group has child tasks running
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>