U
e5d� � @ s� d dddddddgZ dZeZi fd d�Zd
d� Zdd� Zdd� Zddd�Zdd� Z G dd� de
�ZG dd� de�Zda
dadd� Zd
S )�error�start_new_thread�exit� get_ident�
allocate_lock�interrupt_main�LockType�RLockl c C s� t |�t t� �krtd��t |�t t� �kr4td��daz| ||� W n. tk
rZ Y n dd l}|�� Y nX datr�dat �d S )Nz2nd arg must be a tuplez3rd arg must be a dictF� T)
�type�tuple� TypeError�dict�_main�
SystemExit� traceback� print_exc�
_interrupt�KeyboardInterrupt)Zfunction�args�kwargsr � r �%/usr/lib64/python3.8/_dummy_thread.pyr s
c C s t �d S �N)r r r r r r = s c C s dS �N� r r r r r r A s c C s t � S r �r r r r r r J s Nc C s | d k rt d��dS )Nz'setting thread stack size not supportedr )r )�sizer r r �
stack_sizeN s r c C s t � S r r r r r r �
_set_sentinelT s r c @ sB e Zd Zdd� Zddd�ZeZdd� Zd d
� Zdd� Zd
d� Z dS )r c C s
d| _ d S )NF��
locked_status��selfr r r �__init__c s zLockType.__init__N�����c C sH |d ks|rd| _ dS | j s&d| _ dS |dkr@dd l}|�|� dS d S )NTr F)r �time�sleep)r" �waitflag�timeoutr% r r r �acquiref s
zLockType.acquirec C s | � � d S r )�release)r" �typ�val�tbr r r �__exit__� s zLockType.__exit__c C s | j s
t�d| _ dS )NFT)r r r! r r r r* � s zLockType.releasec C s | j S r r r! r r r �locked� s zLockType.lockedc C s* d| j rdnd| jj| jjtt| ��f S )Nz<%s %s.%s object at %s>r/ Zunlocked)r � __class__�
__module__�__qualname__�hex�idr! r r r �__repr__� s
�zLockType.__repr__)Nr$ )
�__name__r1 r2 r# r) � __enter__r. r* r/ r5 r r r r r X s
c s6 e Zd Z� fdd�Zd � fdd� Z� fdd�Z� ZS )
r c s t � �� d| _d S )Nr )�superr# �_levelsr! �r0 r r r# � s
zRLock.__init__Nr$ c s$ t � �||�}|r | jd7 _|S r )r8 r) r9 )r" r' r( r/ r: r r r) � s z
RLock.acquirec s4 | j dkrt�| j dkr"t� �� | j d8 _ d S )Nr r )r9 r r8 r* r! r: r r r* � s
z
RLock.release)Nr$ )r6 r1 r2 r# r) r* �
__classcell__r r r: r r � s FTc C s t r
t�ndad S )NT)r r r r r r r r � s )N)�__all__�TIMEOUT_MAX�RuntimeErrorr r r r r r r �objectr r r r r r r r r �