a  zee:@sdZddlZddlZddlmZddlmZGdddZGdd d eZGd d d ZGd d d eZ GdddeZ Gddde Z dS))LockEvent Condition SemaphoreBoundedSemaphoreN)events) exceptionsc@seZdZddZddZdS)_ContextManagerMixincs|IdHdSN)acquireselfrA/opt/bitninja-python-dojo/embedded/lib/python3.9/asyncio/locks.py __aenter__ sz_ContextManagerMixin.__aenter__cs |dSr )release)rexc_typeexctbrrr __aexit__sz_ContextManagerMixin.__aexit__N)__name__ __module__ __qualname__rrrrrrr sr csJeZdZddddZfddZddZd d Zd d Zd dZZ S)rNloopcCs:d|_d|_|dur t|_n||_tjdtdddSNF[The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10. stacklevel)_waiters_lockedrget_event_loop_loopwarningswarnDeprecationWarningrrrrr__init__Ms z Lock.__init__csLt}|jrdnd}|jr2|dt|j}d|ddd|dS Nlockedunlocked , waiters:)super__repr__r"r!lenrresextra __class__rrr3Xs  z Lock.__repr__cCs|jSr )r"r rrrr+_sz Lock.lockedc s|js.|jdus$tdd|jDr.d|_dS|jdurBt|_|j}|j|z.z|IdHW|j|n|j|0Wn$t j y|js| Yn0d|_dS)Ncss|]}|VqdSr ) cancelled).0wrrr jzLock.acquire..T) r"r!all collectionsdequer$ create_futureappendremover CancelledError_wake_up_firstrfutrrrr cs&      z Lock.acquirecCs"|jrd|_|ntddS)NFzLock is not acquired.)r"rF RuntimeErrorr rrrrs  z Lock.releasecCsH|js dSztt|j}Wnty0YdS0|sD|ddSNT)r!nextiter StopIterationdone set_resultrGrrrrFs zLock._wake_up_first) rrrr)r3r+r rrF __classcell__rrr8rrs 6  rcsJeZdZddddZfddZddZd d Zd d Zd dZZ S)rNrcCs>t|_d|_|dur$t|_n||_tjdt dddSr) r@rAr!_valuerr#r$r%r&r'r(rrrr)s  zEvent.__init__csLt}|jrdnd}|jr2|dt|j}d|ddd|dS) NsetZunsetr-r.rr/r0r1)r2r3rQr!r4r5r8rrr3s  zEvent.__repr__cCs|jSr rQr rrris_setsz Event.is_setcCs.|js*d|_|jD]}|s|dqdSrJ)rQr!rNrOrGrrrrRs  z Event.setcCs d|_dS)NFrSr rrrclearsz Event.clearc sP|jr dS|j}|j|z|IdHW|j|dS|j|0dSrJ)rQr$rBr!rCrDrGrrrwaits    z Event.wait) rrrr)r3rTrRrUrVrPrrr8rrs    rcsNeZdZdddddZfddZddZd d Zdd d ZddZZ S)rNrcCs~|durt|_n||_tjdtdd|dur>t|d}n|j|jurRtd||_|j |_ |j |_ |j |_ t |_dS)Nrrrrz"loop argument must agree with lock)rr#r$r%r&r'r ValueError_lockr+r rr@rAr!)rlockrrrrr)s   zCondition.__init__csNt}|rdnd}|jr4|dt|j}d|ddd|dSr*)r2r3r+r!r4r5r8rrr3s  zCondition.__repr__cs.|std|z|j}|j|z^|IdHW|j|Wd}z|IdHWqWqPt j y~d}YqP0qP|rt j dS|j|0Wd}z|IdHWqWqt j yd}Yq0q|rt j nHd}z|IdHWqWqt j yd}Yq0q|r(t j 0dS)Nzcannot wait on un-acquired lockFT) r+rIrr$rBr!rCrDr r rE)rrHr:rrrrVsJ         zCondition.waitcs$|}|s |IdH|}q|Sr )rV)r predicateresultrrrwait_for4s zCondition.wait_forrcCsJ|stdd}|jD]*}||kr*qF|s|d7}|dqdS)Nz!cannot notify on un-acquired lockrrF)r+rIr!rNrO)rnidxrHrrrnotifyAs  zCondition.notifycCs|t|jdSr )r_r4r!r rrr notify_allYszCondition.notify_all)N)r) rrrr)r3rVr\r_r`rPrrr8rrs   % rcsLeZdZdddddZfddZdd Zd d Zd d ZddZZ S)rrNrcCsN|dkrtd||_t|_|dur4t|_n||_tj dt dddS)Nrz$Semaphore initial value must be >= 0rrr) rWrQr@rAr!rr#r$r%r&r'rvaluerrrrr)qs  zSemaphore.__init__csVt}|rdn d|j}|jr<|dt|j}d|ddd|dS) Nr+zunlocked, value:r-r.rr/r0r1)r2r3r+rQr!r4r5r8rrr3~s  zSemaphore.__repr__cCs,|jr(|j}|s|ddSqdSr )r!popleftrNrO)rwaiterrrr _wake_up_nexts   zSemaphore._wake_up_nextcCs |jdkS)NrrSr rrrr+szSemaphore.lockedcst|jdkrb|j}|j|z|IdHWq||jdkrX|sX|Yq0q|jd8_dS)NrrT)rQr$rBr!rCcancelr:rerGrrrr s    zSemaphore.acquirecCs|jd7_|dS)Nr)rQrer rrrrszSemaphore.release)r) rrrr)r3rer+r rrPrrr8rrbs  rcs0eZdZdddfdd ZfddZZS) rrNrcs.|rtjdtdd||_tj||ddS)Nrrrr)r%r&r' _bound_valuer2r)rar8rrr)s zBoundedSemaphore.__init__cs"|j|jkrtdtdS)Nz(BoundedSemaphore released too many times)rQrgrWr2rr r8rrrs zBoundedSemaphore.release)r)rrrr)rrPrrr8rrs r) __all__r@r%rr r rrrrrrrrrs   DzN