
    Pi                        U d dl mZ d dlmZmZ d dlmZmZmZ d dl	m
Z
  e
dd          Zded	<    G d
 d          Z G d d          ZdS )    )annotations)CallableOptional)Executoras_completedFuture)
ContextVarasync_compile_active_modeN)defaultz&ContextVar[Optional[AsyncCompileMode]]active_modec                      e Zd ZddZd ZdS )	FutureKernelfinalize_compiler   futurer   c                0    || _         d | _        || _        d S N)r   kernelr   )selfr   r   s      u/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/triton/runtime/_async_compile.py__init__zFutureKernel.__init__   s     0    c                    | j         | j         S | j                                        }|                     |           || _         |S r   )r   r   resultr   )r   r   s     r   r   zFutureKernel.result   sE    ;";##%%f%%%r   N)r   r   r   r   )__name__
__module____qualname__r   r    r   r   r   r   	   s7           
    r   r   c                  (    e Zd ZddZd Zd Zd ZdS )	AsyncCompileModeexecutorr   c                0    || _         g | _        i | _        d S r   )r    raw_futuresfuture_kernels)r   r    s     r   r   zAsyncCompileMode.__init__   s      r   c                    | j                             |          }||S | j                            |          }||_        | j                            |           t          ||          }|| j         |<   |S r   )r#   getr    submit_keyr"   appendr   )r   key
compile_fnfinalize_fnr   future_kernels         r   r&   zAsyncCompileMode.submit!   sx    $((--M%%j11'''$[&99#0C r   c                    t                                           t          d          t                               |            | S )Nz*Another AsyncCompileMode is already active)r   r%   RuntimeErrorset)r   s    r   	__enter__zAsyncCompileMode.__enter__-   s8    ??(KLLLr   c                    t          | j                  D ]&}| j        |j                                                  't
                              d            d S r   )r   r"   r#   r'   r   r   r/   )r   exc_type	exc_value	tracebackr   s        r   __exit__zAsyncCompileMode.__exit__3   sS    "4#344 	6 	6F,335555r   N)r    r   )r   r   r   r   r&   r0   r5   r   r   r   r   r      sU        ! ! ! !

 
 
      r   r   )
__future__r   typingr   r   concurrent.futuresr   r   r   contextvarsr	   r   __annotations__r   r   r   r   r   <module>r;      s    " " " " " " " % % % % % % % % = = = = = = = = = = " " " " " "6@jA\fj6k6k6k k k k k       "         r   