U e5d@sddddddddgZdZeZifd dZd dZd dZd dZdddZddZ Gddde Z Gddde Z da daddZd S)errorstart_new_threadexit get_ident allocate_lockinterrupt_mainLockTypeRLocklcCst|ttkrtdt|ttkr4tddaz|||Wn.tk rZYnddl}|YnXdatrdat dS)Nz2nd arg must be a tuplez3rd arg must be a dictFT) typetuple TypeErrordict_main SystemExit traceback print_exc _interruptKeyboardInterrupt)Zfunctionargskwargsrr%/usr/lib64/python3.8/_dummy_thread.pyrs cCstdSN)rrrrrr=scCsdSNrrrrrrAscCstSrrrrrrrJsNcCs|dk rtddS)Nz'setting thread stack size not supportedr )r)sizerrr stack_sizeNsrcCstSrrrrrr _set_sentinelTsrc@sBeZdZddZdddZeZddZd d Zd d Zd dZ dS)rcCs d|_dS)NF locked_statusselfrrr__init__cszLockType.__init__NcCsH|dks |rd|_dS|js&d|_dS|dkr@ddl}||dSdS)NTr F)r timesleep)r"waitflagtimeoutr%rrracquirefs  zLockType.acquirecCs |dSr)release)r"typvaltbrrr__exit__szLockType.__exit__cCs|js td|_dS)NFT)r rr!rrrr*szLockType.releasecCs|jSrrr!rrrlockedszLockType.lockedcCs*d|jr dnd|jj|jjtt|fS)Nz<%s %s.%s object at %s>r/Zunlocked)r __class__ __module__ __qualname__hexidr!rrr__repr__s   zLockType.__repr__)Nr$) __name__r1r2r#r) __enter__r.r*r/r5rrrrrXs   cs6eZdZfddZd fdd ZfddZZS) rcstd|_dS)Nr )superr#_levelsr!r0rrr#s zRLock.__init__Nr$cs$t||}|r |jd7_|Sr)r8r)r9)r"r'r(r/r:rrr)sz RLock.acquirecs4|jdkrt|jdkr"t|jd8_dS)Nr r)r9rr8r*r!r:rrr*s    z RLock.release)Nr$)r6r1r2r#r)r* __classcell__rrr:rrs FTcCstr tndadS)NT)rrrrrrrrs)N)__all__ TIMEOUT_MAX RuntimeErrorrrrrrrrobjectrrrrrrrrrs"    @