o
    ^h                     @   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   Zget_running_loopcontextvarsZcopy_context	functoolspartialrunZrun_in_executor)funcargskwargsZloopctxZ	func_call r   !  /home/conda/feedstock_root/build_artifacts/python-split_1761171407825/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.10/asyncio/threads.pyr      s
   
r   )__doc__r   r    r   __all__r   r   r   r   r   <module>   s    