|
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any, Callable, List, Optional
|
|
from starlette.websockets import WebSocket
|
|
from starlette.websockets import WebSocket
|
|
|
|
|
|
from . import globals
|
|
from . import globals
|
|
-from .auto_context import Context
|
|
|
|
|
|
+from .auto_context import Context, update_after_await
|
|
from .helpers import is_coroutine
|
|
from .helpers import is_coroutine
|
|
from .lifecycle import on_startup
|
|
from .lifecycle import on_startup
|
|
from .task_logger import create_task
|
|
from .task_logger import create_task
|
|
@@ -243,8 +243,8 @@ def handle_event(handler: Optional[Callable], arguments: EventArguments) -> Opti
|
|
result = handler() if no_arguments else handler(arguments)
|
|
result = handler() if no_arguments else handler(arguments)
|
|
if is_coroutine(handler):
|
|
if is_coroutine(handler):
|
|
async def wait_for_result():
|
|
async def wait_for_result():
|
|
- with Context(arguments.sender.parent_view):
|
|
|
|
- await result
|
|
|
|
|
|
+ with Context(arguments.sender.parent_view) as context:
|
|
|
|
+ await update_after_await(result, context)
|
|
if globals.loop and globals.loop.is_running():
|
|
if globals.loop and globals.loop.is_running():
|
|
create_task(wait_for_result(), name=str(handler))
|
|
create_task(wait_for_result(), name=str(handler))
|
|
else:
|
|
else:
|