asyncx.dispatch

asyncx.dispatch(loop_selector)[source]

A decorator to dispatch an async function to another event loop.

Example

>>> async def foo() -> None:
...     return threading.get_ident()
...
>>> @asyncx.dispatch(get_event_loop)
... async def foo_dispatch() -> None:
...     return threading.get_ident()
...
>>> current, dispatched = await asyncio.gather(
...     foo(), foo_dispatch(),
... )
>>> current != dispatched
True
Parameters

loop_selector (Union[asyncio.events.AbstractEventLoop, Callable[[], asyncio.events.AbstractEventLoop]]) – Target event loop to which a coroutine is dispatched. The value must be either an event loop or a callable that returns an event loop.

Return type

Callable[[asyncx.event_loop.TAsyncCallable], asyncx.event_loop.TAsyncCallable]