
    7i                        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y)    )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y)FutureKernelc                .    || _         d | _        || _        y N)finalize_compilekernelfuture)selfr   r   s      Z/home/rose/Desktop/poly/venv/lib/python3.12/site-packages/triton/runtime/_async_compile.py__init__zFutureKernel.__init__   s     0    c                    | j                   | j                   S | j                  j                         }| j                  |       || _         |S r   )r   r   resultr   )r   r   s     r   r   zFutureKernel.result   sB    ;;";;##%f%r   N)r   r   r   r   )__name__
__module____qualname__r   r    r   r   r   r   	   s    
r   r   c                  &    e Zd ZddZd Zd Zd Zy)AsyncCompileModec                .    || _         g | _        i | _        y r   )executorraw_futuresfuture_kernels)r   r!   s     r   r   zAsyncCompileMode.__init__   s      r   c                    | j                   j                  |      }||S | j                  j                  |      }||_        | j
                  j                  |       t        ||      }|| j                   |<   |S r   )r#   getr!   submit_keyr"   appendr   )r   key
compile_fnfinalize_fnr   future_kernels         r   r&   zAsyncCompileMode.submit!   st    $$((-M%%j1'$[&9#0C r   c                n    t         j                         t        d      t         j                  |        | S )Nz*Another AsyncCompileMode is already active)r   r%   RuntimeErrorset)r   s    r   	__enter__zAsyncCompileMode.__enter__-   s,    ??(KLLr   c                    t        | j                        D ])  }| j                  |j                     j	                          + t
        j                  d        y r   )r   r"   r#   r'   r   r   r/   )r   exc_type	exc_value	tracebackr   s        r   __exit__zAsyncCompileMode.__exit__3   s>    "4#3#34F,335 5r   N)r!   r   )r   r   r   r   r&   r0   r5   r   r   r   r   r      s    !

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