� !A?h��0�dZddlZddlZddlmZdZd�ZdS)z6High-level support for working with threads in asyncio�N�)�events)� to_threadc���K�tj��}tj��}t j|j|g|�Ri|��}|�d|���d{V��S)a�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*. N)r�get_running_loop� contextvars� copy_context� functools�partial�run�run_in_executor)�func�args�kwargs�loop�ctx� func_calls �rsU��<�<��������������� �� 7� 7� 7� 7� 7r