o
    ۾i                     @   sD   d dl Z d dlZd dlm  mZ G dd deZe Zdd Z	dS )    Nc                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )_CompilerLockc                 C   s   t  | _d S N)	threadingRLock_lockself r	   L/home/ubuntu/.local/lib/python3.10/site-packages/numba/core/compiler_lock.py__init__   s   z_CompilerLock.__init__c                 C   s   t d | j  d S Nznumba:compiler_lock)evstart_eventr   acquirer   r	   r	   r
   r         
z_CompilerLock.acquirec                 C   s   | j   td d S r   )r   releaser   	end_eventr   r	   r	   r
   r      r   z_CompilerLock.releasec                 C      |    d S r   )r   r   r	   r	   r
   	__enter__      z_CompilerLock.__enter__c                 C   r   r   )r   )r   exc_valexc_type	tracebackr	   r	   r
   __exit__   r   z_CompilerLock.__exit__c                 C   s    t | jd}t|s| j}| S )N	_is_owned)getattrr   callabler   )r   is_ownedr	   r	   r
   	is_locked   s   z_CompilerLock.is_lockedc                    s   t   fdd}|S )Nc                     s6     | i |W  d    S 1 sw   Y  d S r   r	   )argskwargsfuncr   r	   r
   _acquire_compile_lock    s   $z5_CompilerLock.__call__.<locals>._acquire_compile_lock)	functoolswraps)r   r"   r#   r	   r!   r
   __call__   s   z_CompilerLock.__call__c                 C   s   | j dr| j   dS dS )Nr   FT)r   r   r   r   r	   r	   r
   r   &   s   
z_CompilerLock._is_ownedN)__name__
__module____qualname__r   r   r   r   r   r   r&   r   r	   r	   r	   r
   r      s    r   c                   C   s   t  sJ dS )z=Sentry that checks the global_compiler_lock is acquired.
    N)global_compiler_lockr   r	   r	   r	   r
   require_global_compiler_lock4   s   r+   )
r   r$   numba.core.eventcoreeventr   objectr   r*   r+   r	   r	   r	   r
   <module>   s    *