Spaces:
Runtime error
Runtime error
| """High-level support for working with threads in asyncio""" | |
| import functools | |
| import contextvars | |
| from . import events | |
| __all__ = "to_thread", | |
| async def to_thread(func, /, *args, **kwargs): | |
| """Asynchronously run function *func* in a separate thread. | |
| Any *args and **kwargs supplied for this function are directly passed | |
| to *func*. Also, the current :class:`contextvars.Context` is propagated, | |
| allowing context variables from the main thread to be accessed in the | |
| separate thread. | |
| Return a coroutine that can be awaited to get the eventual result of *func*. | |
| """ | |
| loop = events.get_running_loop() | |
| ctx = contextvars.copy_context() | |
| func_call = functools.partial(ctx.run, func, *args, **kwargs) | |
| return await loop.run_in_executor(None, func_call) | |