fix: Fixed task was destroyed but it is pending (CPython #91887)
This commit is contained in:
@@ -14,6 +14,7 @@ class AsyncEvent:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__handlers: Optional[Dict] = {}
|
__handlers: Optional[Dict] = {}
|
||||||
|
__running_tasks = set()
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.__handlers = {}
|
self.__handlers = {}
|
||||||
@@ -74,7 +75,9 @@ class AsyncEvent:
|
|||||||
name = name.upper()
|
name = name.upper()
|
||||||
if name in self.__handlers:
|
if name in self.__handlers:
|
||||||
for coroutine in self.__handlers[name]:
|
for coroutine in self.__handlers[name]:
|
||||||
asyncio.create_task(coroutine(data))
|
task = asyncio.create_task(coroutine(data))
|
||||||
|
self.__running_tasks.add(task)
|
||||||
|
task.add_done_callback(lambda t: self.__running_tasks.remove(t))
|
||||||
|
|
||||||
if name != '__ALL__':
|
if name != '__ALL__':
|
||||||
self.dispatch('__ALL__', {
|
self.dispatch('__ALL__', {
|
||||||
|
|||||||
Reference in New Issue
Block a user