
    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dd	Zd
S )FutureKernelfinalize_compiler   futurer   c                0    || _         d | _        || _        d S N)r   kernelr   )selfr   r   s      P/var/www/icac/venv/lib/python3.11/site-packages/triton/runtime/_async_compile.py__init__zFutureKernel.__init__   s     0    Fignore_errorsboolc                    | j         | j         S 	 | j                                        }n# t          $ r |rY d S  w xY w|                     |           || _         |S r   )r   r   result	Exceptionr   )r   r   r   s      r   r   zFutureKernel.result   s{    ;";	[''))FF 	 	 	 		
 	f%%%s   * ;;N)r   r   r   r   )F)r   r   )__name__
__module____qualname__r   r    r   r   r   r   	   sA           
      r   r   c                  .    e Zd Zddd
dZd Zd Zd Zd	S )AsyncCompileModeF)r   executorr   c               >    || _         || _        g | _        i | _        d S r   )r#   r   raw_futuresfuture_kernels)r   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__4   s8    ??(KLLLr   c                    t          | j                  D ],}| j        |j                                     | j                   -t                              d            d S r   )r   r%   r&   r*   r   r   r   r2   )r   exc_type	exc_value	tracebackr   s        r   __exit__zAsyncCompileMode.__exit__:   sZ    "4#344 	H 	HF,33D4FGGGGr   N)r#   r   )r   r   r   r   r)   r3   r8   r    r   r   r"   r"       sb        <A ! ! ! ! ! !
 
 
      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   