o
    w[e                     @   s0   d Z ddlZddlZddlmZ dZdd ZdS )z6High-level support for working with threads in asyncio    N   )events)	to_threadc                   s@   t  }t }tj|j| g|R i |}|d|I dH 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_call r   &/usr/lib/python3.10/asyncio/threads.pyr      s
   
r   )__doc__r   r    r   __all__r   r   r   r   r   <module>   s    