B
iR/ @ s d dddddddgZ dZeZi fd dZd
d Zdd Zdd ZdddZdd Z G dd de
ZG dd deZda
dadd Zd
S )errorstart_new_threadexit get_ident
allocate_lockinterrupt_mainLockTypeRLockl c C s t |t t krtdt |t t kr4tdday| || W n. tk
rZ Y n dd l}| Y nX datrdat d S )Nz2nd arg must be a tuplez3rd arg must be a dictF T)
typetuple TypeErrordict_main
SystemExit traceback print_exc
_interruptKeyboardInterrupt)Zfunctionargskwargsr r 2/opt/alt/python37/lib64/python3.7/_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 )N)r r r r r r J s Nc C s | d k rt ddS )Nz'setting thread stack size not supportedr )r )sizer r r
stack_sizeN s r c C s t S )N)r r r r r
_set_sentinelT s r c @ sB e Zd Zdd ZdddZeZdd 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__Nc C sH |d ks|rd| _ dS | j s&d| _ dS |dkr@dd l}|| dS d S )NTr F)r timeZsleep)r waitflagtimeoutr r r r acquiref s
zLockType.acquirec C s | d S )N)release)r typvaltbr r r __exit__ s zLockType.__exit__c C s | j s
td| _ dS )NFT)r r )r r r r r$ s zLockType.releasec C s | j S )N)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__hexid)r r r r __repr__ s
zLockType.__repr__)Nr )
__name__r+ r, r r# __enter__r( r$ r) r/ r r r r r X s
c s6 e Zd Z fddZd fdd Z fddZ ZS )
r c s t d| _d S )Nr )superr _levels)r )r* r r r s
zRLock.__init__Nr c s$ t ||}|r | jd7 _|S )Nr )r2 r# r3 )r r! r" r) )r* r r r# s z
RLock.acquirec s4 | j dkrt| j dkr"t | j d8 _ d S )Nr r )r3 r r2 r$ )r )r* r r r$ s
z
RLock.release)Nr )r0 r+ r, r r# r$
__classcell__r r )r* r r s FTc C s t r
tndad S )NT)r r r r r r r r s )N)__all__TIMEOUT_MAXRuntimeErrorr r r r r r r objectr r r r r r r r r