grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026U iÛf„Æã@s.ddlZddlZddlZddlmZddlm Z ddl m Z m ZzddlmZWn ek rpddlmZYnXdddd d d d d dddddddddddddddgZejZejZejZejZzejZdZe d¡Wnek rìdZYnXejZ z ej!Z"Wnek �rdZ"YnXej#Z#[da$da%d d„Z&d!d„Z'eZ(d"d„Z!Gd#d$„d$ƒZ)e)Z*Gd%d„dƒZ+Gd&d„dƒZ,Gd'd„de,ƒZ-Gd(d „d ƒZ.Gd)d„dƒZ/Gd*d„de0ƒZ1eƒj2Z3e3ƒdKd,d-„Z4eƒa5iZ6iZ7e ƒZ8eƒa9e:ƒa;Gd.d„dƒZm?Z@WnHek �rRdd0lAmBZCdd1lmDZDeDdd2ƒZ?d3d„Z@d4d„a>YnXd5d6„ZEGd7d„de<ƒZFGd8d9„d9e<ƒZGGd:d;„d;e<ƒZHdd?„ZMd@d „ZNddAlmOZOeGƒaPdBdC„ZQdDd „ZRzddElmSZTWn"ek �rddFlUmTZTYnXdGdH„ZVeWedIƒ�r*ejXeVdJ�dS)LéN)Ú monotonic)ÚWeakSet)ÚisliceÚcount)ÚdequeÚ get_identÚ active_countÚ ConditionÚcurrent_threadÚ enumerateÚ main_threadÚ TIMEOUT_MAXÚEventÚLockÚRLockÚ SemaphoreÚBoundedSemaphoreÚThreadÚBarrierÚBrokenBarrierErrorÚTimerÚ ThreadErrorÚ setprofileÚsettraceÚlocalÚ stack_sizeÚ excepthookÚExceptHookArgsTÚ get_native_idFcCs|adS©N)Ú _profile_hook©Úfunc©r#ú./opt/alt/python38/lib64/python3.8/threading.pyr9scCs|adSr)Ú _trace_hookr!r#r#r$rCscOstdkrt||ŽSt||ŽSr)Ú_CRLockÚ_PyRLock)ÚargsÚkwargsr#r#r$rQs  c@sReZdZdd„Zdd„Zddd„ZeZd d „Zd d „Zd d„Z dd„Z dd„Z dS)Ú_RLockcCstƒ|_d|_d|_dS©Nr)Ú_allocate_lockÚ_blockÚ_ownerÚ_count©Úselfr#r#r$Ú__init__hsz_RLock.__init__c Cs^|j}zt|j}Wntk r(YnXd|j ¡r:dnd|jj|jj||j t t |ƒƒfS)Nz)<%s %s.%s object owner=%r count=%d at %s>ÚlockedZunlocked) r.Ú_activeÚnameÚKeyErrorr-r3Ú __class__Ú __module__Ú __qualname__r/ÚhexÚid)r1Úownerr#r#r$Ú__repr__ms úz_RLock.__repr__TéÿÿÿÿcCsDtƒ}|j|kr"|jd7_dS|j ||¡}|r@||_d|_|S©Né)rr.r/r-Úacquire)r1ÚblockingÚtimeoutÚmeÚrcr#r#r$rA|s z_RLock.acquirecCs<|jtƒkrtdƒ‚|jd|_}|s8d|_|j ¡dS)Núcannot release un-acquired lockr@)r.rÚ RuntimeErrorr/r-Úrelease)r1rr#r#r$rH¢s  z_RLock.releasecCs | ¡dSr©rH©r1ÚtÚvÚtbr#r#r$Ú__exit__¹sz_RLock.__exit__cCs|j ¡|\|_|_dSr)r-rAr/r.)r1Ústater#r#r$Ú_acquire_restore¾s z_RLock._acquire_restorecCs<|jdkrtdƒ‚|j}d|_|j}d|_|j ¡||fS)NrrF)r/rGr.r-rH)r1rr<r#r#r$Ú _release_saveÂs  z_RLock._release_savecCs |jtƒkSr)r.rr0r#r#r$Ú _is_ownedÌsz_RLock._is_ownedN)Tr>) Ú__name__r8r9r2r=rAÚ __enter__rHrNrPrQrRr#r#r#r$r*^s  $ r*c@speZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z ddd„Z ddd„Z ddd„Z dd„Z e ZdS)r NcCs–|dkrtƒ}||_|j|_|j|_z |j|_Wntk rDYnXz |j|_Wntk rfYnXz |j|_Wntk rˆYnXtƒ|_ dSr) rÚ_lockrArHrQÚAttributeErrorrPrRÚ_dequeÚ_waiters©r1Úlockr#r#r$r2Þs$   zCondition.__init__cCs |j ¡Sr)rUrTr0r#r#r$rTöszCondition.__enter__cGs |jj|ŽSr)rUrN)r1r(r#r#r$rNùszCondition.__exit__cCsd|jt|jƒfS)Nz)rUÚlenrXr0r#r#r$r=üszCondition.__repr__cCs|j ¡dSr)rUrHr0r#r#r$rQÿszCondition._release_savecCs|j ¡dSr)rUrA)r1Úxr#r#r$rPszCondition._acquire_restorecCs"|j d¡r|j ¡dSdSdS)NrFT)rUrArHr0r#r#r$rRs  zCondition._is_ownedcCs°| ¡stdƒ‚tƒ}| ¡|j |¡| ¡}d}z>|dkrN| ¡d}n |dkrd| d|¡}n | d¡}|W¢S| |¡|sªz|j |¡Wnt k r¨YnXXdS)Nzcannot wait on un-acquired lockFTr) rRrGr,rArXÚappendrQrPÚremoveÚ ValueError)r1rCÚwaiterZ saved_stateZgotitr#r#r$Úwaits*   zCondition.waitcCsXd}|}|ƒ}|sT|dk rB|dkr.tƒ|}n|tƒ}|dkrBqT| |¡|ƒ}q|Sr+)Ú_timera)r1Z predicaterCÚendtimeZwaittimeÚresultr#r#r$Úwait_for>s   zCondition.wait_forr@c Csf| ¡stdƒ‚|j}tt||ƒƒ}|s,dS|D]0}| ¡z| |¡Wq0tk r^Yq0Xq0dS)Nz!cannot notify on un-acquired lock)rRrGrXrWÚ_islicerHr^r_)r1ÚnZ all_waitersZwaiters_to_notifyr`r#r#r$ÚnotifyUs zCondition.notifycCs| t|jƒ¡dSr)rhr[rXr0r#r#r$Ú notify_alllszCondition.notify_all)N)N)N)r@)rSr8r9r2rTrNr=rQrPrRrarerhriZ notifyAllr#r#r#r$r Òs  0   c@s4eZdZd dd„Zd dd„ZeZdd „Zd d „ZdS)rr@cCs&|dkrtdƒ‚ttƒƒ|_||_dS)Nrz$semaphore initial value must be >= 0)r_r rÚ_condÚ_value©r1Úvaluer#r#r$r2„s zSemaphore.__init__TNc Cs’|s|dk rtdƒ‚d}d}|j�f|jdkrr|s4q„|dk rd|dkrPtƒ|}n|tƒ}|dkrdq„|j |¡q$|jd8_d}W5QRX|S)Nz.can't specify timeout for non-blocking acquireFrr@T)r_rjrkrbra)r1rBrCrErcr#r#r$rAŠs$    zSemaphore.acquirec Cs.|j�|jd7_|j ¡W5QRXdSr?)rjrkrhr0r#r#r$rH¹szSemaphore.releasecCs | ¡dSrrIrJr#r#r$rNÄszSemaphore.__exit__)r@)TN)rSr8r9r2rArTrHrNr#r#r#r$rxs   - c@seZdZddd„Zdd„ZdS)rr@cCst ||¡||_dSr)rr2Ú_initial_valuerlr#r#r$r2Ùs zBoundedSemaphore.__init__c CsB|j�2|j|jkrtdƒ‚|jd7_|j ¡W5QRXdS)Nz!Semaphore released too many timesr@)rjrkrnr_rhr0r#r#r$rHÝs  zBoundedSemaphore.releaseN)r@)rSr8r9r2rHr#r#r#r$rÈs c@sBeZdZdd„Zdd„Zdd„ZeZdd„Zd d „Zdd d „Z d S)rcCsttƒƒ|_d|_dS©NF)r rrjÚ_flagr0r#r#r$r2ùs zEvent.__init__cCs|j tƒ¡dSr)rjr2rr0r#r#r$Ú_reset_internal_locksýszEvent._reset_internal_lockscCs|jSr)rpr0r#r#r$Úis_setsz Event.is_setc Cs&|j�d|_|j ¡W5QRXdS©NT)rjrprir0r#r#r$Úsetsz Event.setc Cs|j� d|_W5QRXdSro)rjrpr0r#r#r$Úclearsz Event.clearNc Cs8|j�(|j}|s|j |¡}|W5QR£SQRXdSr)rjrpra)r1rCZsignaledr#r#r$ras  z Event.wait)N) rSr8r9r2rqrrZisSetrtrurar#r#r#r$rîs   c@s|eZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z e dd„ƒZ e dd„ƒZe dd„ƒZdS)rNcCs.ttƒƒ|_||_||_||_d|_d|_dSr+)r rrjÚ_actionÚ_timeoutÚ_partiesÚ_stater/)r1ÚpartiesÚactionrCr#r#r$r2Fs zBarrier.__init__c Cs�|dkr|j}|j�r| ¡|j}|jd7_z6|d|jkrL| ¡n | |¡|W¢W5QR£S|jd8_| ¡XW5QRXdSr?)rwrjÚ_enterr/Ú_exitrxÚ_releaseÚ_wait)r1rCÚindexr#r#r$raVs   z Barrier.waitcCs(|jdkr|j ¡q|jdkr$t‚dS)N©r>r@r)ryrjrarr0r#r#r$r|ts    zBarrier._entercCs>z"|jr| ¡d|_|j ¡Wn| ¡‚YnXdSr?)rvryrjriÚ_breakr0r#r#r$r~szBarrier._releasecs4ˆj ‡fdd„|¡s"ˆ ¡t‚ˆjdkr0t‚dS)Ncs ˆjdkSr+©ryr#r0r#r$ÚŽózBarrier._wait..r)rjrer‚rry©r1rCr#r0r$r�s  z Barrier._waitcCs(|jdkr$|jdkr$d|_|j ¡dS)Nrr�)r/ryrjrir0r#r#r$r}˜s  z Barrier._exitc CsT|j�D|jdkr6|jdkr$d|_q<|jdkréþÿÿÿ)rjr/ryrir0r#r#r$ÚresetŸs   z Barrier.resetc Cs|j�| ¡W5QRXdSr)rjr‚r0r#r#r$Úabort³sz Barrier.abortcCsd|_|j ¡dS©Nr‡)ryrjrir0r#r#r$r‚½szBarrier._breakcCs|jSr)rxr0r#r#r$rzÃszBarrier.partiescCs|jdkr|jSdSr+)ryr/r0r#r#r$Ú n_waitingÈs zBarrier.n_waitingcCs |jdkSrŠrƒr0r#r#r$ÚbrokenÑszBarrier.broken)NN)N)rSr8r9r2rar|r~rr}rˆr‰r‚Úpropertyrzr‹rŒr#r#r#r$r=s       c@s eZdZdS)rN)rSr8r9r#r#r#r$r×sú Thread-%dcCs |tƒSr)Ú_counter)Útemplater#r#r$Ú_newnameÞsr‘c@seZdZdZd9ddœdd„Zdd„Zd d „Zd d „Zd d„Zdd„Z dd„Z e rXdd„Z dd„Z dd„Zdd„Zdd„Zd:dd„Zd;d!d"„Zed#d$„ƒZejd%d$„ƒZed&d'„ƒZe rÂed(d)„ƒZd*d+„Zd,d-„Zed.d/„ƒZejd0d/„ƒZd1d2„Zd3d4„Zd5d6„Zd7d8„ZdS)||_n tƒj|_d|_ t rXd|_ d|_ t ƒ|_d|_d|_tj|_tƒ|_t |¡dS)NFT)Ú_targetÚstrr‘Ú_nameÚ_argsÚ_kwargsÚ _daemonicr r“Ú_identÚ_HAVE_THREAD_NATIVE_IDÚ _native_idÚ _tstate_lockrÚ_startedÚ _is_stoppedÚ _initializedÚ_sysÚstderrÚ_stderrÚ_make_invoke_excepthookÚ_invoke_excepthookÚ _danglingÚadd)r1ÚgroupÚtargetr5r(r)r“r#r#r$r2ùs& zThread.__init__cCs(|j ¡|r| ¡n d|_d|_dSrs)ržrqÚ_set_tstate_lockrŸr�)r1Úis_aliver#r#r$rq(s   zThread._reset_internal_lockscCs^d}|j ¡rd}| ¡|jr$d}|jr2|d7}|jdk rJ|d|j7}d|jj|j|fS)NÚinitialZstartedZstoppedz daemonz %sz <%s(%s, %s)>) ržrrr«rŸr™ršr7rSr–)r1Zstatusr#r#r$r=4s  zThread.__repr__c Cs„|jstdƒ‚|j ¡r tdƒ‚t�|t|<W5QRXzt|jdƒWn,tk rtt� t|=W5QRX‚YnX|j  ¡dS)Nzthread.__init__() not calledz threads can only be started oncer#) r rGržrrÚ_active_limbo_lockÚ_limboÚ_start_new_threadÚ _bootstrapÚ Exceptionrar0r#r#r$ÚstartBs  z Thread.startcCs.z|jr|j|j|jŽW5|`|`|`XdSr)r”r—r˜r0r#r#r$Úrun[s z Thread.runcCs4z | ¡Wn"|jr(tdkr(YdS‚YnXdSr)Ú_bootstrap_innerr™r¡r0r#r#r$r°ls  zThread._bootstrapcCs tƒ|_dSr)rršr0r#r#r$Ú _set_ident€szThread._set_identcCs tƒ|_dSr)rrœr0r#r#r$Ú_set_native_id„szThread._set_native_idc Cs8tƒ|_|j ¡|js4t�t |j¡W5QRXdSr)Ú _set_sentinelr�rAr“Ú_shutdown_locks_lockÚ_shutdown_locksr§r0r#r#r$rª‡s  zThread._set_tstate_lockcCs¼zŠ| ¡| ¡tr| ¡|j ¡t�|t|j <t |=W5QRXt rVt   t ¡trdt  t¡z | ¡Wn| |¡YnXW5t� z ttƒ=Wn YnXW5QRXXdSr)r­r4rrµrªr›r¶ržrtršr®r%r¡rr rr³r¥r0r#r#r$r´“s,      zThread._bootstrap_innerc Cs>|j}|dk rd|_d|_|js:t�t |¡W5QRXdSrs)r�rŸr“r¸r¹ÚdiscardrYr#r#r$Ú_stop°sz Thread._stopc Cst�ttƒ=W5QRXdSr)r­r4rr0r#r#r$Ú_deleteÊszThread._deletecCsZ|jstdƒ‚|j ¡s tdƒ‚|tƒkr2tdƒ‚|dkrD| ¡n|jt|dƒd�dS)NúThread.__init__() not calledz'cannot join thread before it is startedzcannot join current threadr)rC)r rGržrrr Ú_wait_for_tstate_lockÚmaxr†r#r#r$ÚjoinÓs   z Thread.joinTr>cCs0|j}|dkrn| ||¡r,| ¡| ¡dSr)r�rArHr»)r1ÚblockrCrZr#r#r$r¾ùs  zThread._wait_for_tstate_lockcCs|jSr)r–r0r#r#r$r5s z Thread.namecCst|ƒ|_dSr)r•r–©r1r5r#r#r$r5scCs|jSr)ršr0r#r#r$Úidents z Thread.identcCs|jSr)rœr0r#r#r$Ú native_id$s zThread.native_idcCs&|js|j ¡sdS| d¡|j Sro)rŸržrrr¾r0r#r#r$r«/s  zThread.is_alivecCs ddl}|jdtdd�| ¡S)Nrz/isAlive() is deprecated, use is_alive() insteadé)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarningr«)r1rÇr#r#r$ÚisAlive=s ÿzThread.isAlivecCs|jSr)r™r0r#r#r$r“Gs z Thread.daemoncCs*|jstdƒ‚|j ¡r tdƒ‚||_dS)Nr½z)cannot set daemon status of active thread)r rGržrrr™©r1Zdaemonicr#r#r$r“Vs  cCs|jSrr’r0r#r#r$ÚisDaemon^szThread.isDaemoncCs ||_dSrr’rËr#r#r$Ú setDaemonaszThread.setDaemoncCs|jSr©r5r0r#r#r$ÚgetNamedszThread.getNamecCs ||_dSrrÎrÂr#r#r$ÚsetNamegszThread.setName)NNNr#N)N)Tr>)rSr8r9r r2rqr=r²r³r°rµr›r¶rªr´r»r¼rÀr¾r�r5ÚsetterrÃrÄr«rÊr“rÌrÍrÏrÐr#r#r#r$rîsP ÿÿ /   &        )Ú _excepthookÚ_ExceptHookArgs)Úprint_exception)Ú namedtuplez'exc_type exc_value exc_traceback threadcCst|ŽSr)rÓ)r(r#r#r$rwscCsž|jtkrdStdk r(tjdk r(tj}n$|jdk rH|jj}|dkrLdSndS|jdk r`|jj}ntƒ}td|›d�|dd�t |j|j |j |d�|  ¡dS)NzException in thread ú:T©ÚfileÚflush)rØ) Úexc_typeÚ SystemExitr¡r¢Úthreadr£r5rÚprintÚ_print_exceptionÚ exc_valueÚ exc_tracebackrÙ)r(r¢r5r#r#r$rzs(     ÿÿcsPt‰tj‰ˆdkrtdƒ‚ˆdkr*tdƒ‚tj‰t‰t‰‡‡‡‡‡fdd„}|S)Nzthreading.excepthook is Nonezsys.excepthook is Nonec s¾z²z,t}|dkrˆ}tˆƒ|f•ƒ}||ƒWn€tk r®}zbd|_~ˆdk rbˆjdk rbˆj}n|j}ˆd|dd�ˆdk r�ˆjdk r�ˆj}nˆ}|ˆƒŽW5d}~XYnXW5d}XdS)NTz"Exception in threading.excepthook:r×)rrr±Ú__suppress_context__r¢r£)rÜr(ÚhookÚexcr¢Zsys_excepthook©Z local_printZ local_sysZold_excepthookZold_sys_excepthookZ sys_exc_infor#r$Úinvoke_excepthook©s* ÿ z2_make_invoke_excepthook..invoke_excepthook)rr¡rGÚexc_inforÝ)rår#rär$r¤™s r¤c@s&eZdZddd„Zdd„Zdd„ZdS) rNcCsFt |¡||_||_|dk r"|ng|_|dk r4|ni|_tƒ|_dSr)rr2ÚintervalÚfunctionr(r)rÚfinished)r1rçrèr(r)r#r#r$r2×s  zTimer.__init__cCs|j ¡dSr)rértr0r#r#r$Úcancelßsz Timer.cancelcCs6|j |j¡|j ¡s(|j|j|jŽ|j ¡dSr)rérarçrrrèr(r)rtr0r#r#r$r³ãs z Timer.run)NN)rSr8r9r2rêr³r#r#r#r$rÎs c@seZdZdd„ZdS)Ú _MainThreadc CsTtj|ddd�| ¡|j ¡| ¡tr6| ¡t�|t |j <W5QRXdS)NZ MainThreadF©r5r“) rr2rªržrtrµr›r¶r­r4ršr0r#r#r$r2îs z_MainThread.__init__N)rSr8r9r2r#r#r#r$rëìsrëc@s.eZdZdd„Zdd„Zdd„Zd dd „ZdS) Ú _DummyThreadc CsPtj|tdƒdd�|j ¡| ¡tr2| ¡t�|t |j <W5QRXdS)NzDummy-%dTrì) rr2r‘ržrtrµr›r¶r­r4ršr0r#r#r$r2s z_DummyThread.__init__cCsdSrr#r0r#r#r$r» sz_DummyThread._stopcCsdSrsr#r0r#r#r$r«sz_DummyThread.is_aliveNcCsdSrr#r†r#r#r$rÀsz_DummyThread.join)N)rSr8r9r2r»r«rÀr#r#r#r$rís rícCs,z ttƒWStk r&tƒYSXdSr)r4rr6rír#r#r#r$r s c Cs,t�ttƒttƒW5QR£SQRXdSr)r­r[r4r®r#r#r#r$r(scCstt ¡ƒtt ¡ƒSr)Úlistr4Úvaluesr®r#r#r#r$Ú _enumerate4srðc Cs4t�&tt ¡ƒtt ¡ƒW5QR£SQRXdSr)r­rîr4rïr®r#r#r#r$r 8s)rc Csftjr dStj}| ¡t ¡t�ttƒ}t ¡W5QRX|sFqb|D]}|  ¡| ¡qJq dSr) Ú _main_threadrŸr�rHr»r¸rîr¹rurA)ZtlockZlocksrZr#r#r$Ú _shutdownKs ròcCstSr)rñr#r#r#r$r ss)Ú_local)rc CsÊtƒai}zttƒ}Wntk r2tƒ}YnX|atƒatƒa t�xtt ƒƒ}|  t ¡|D]>}||krŽ|  d¡tƒ}||_|||<qb|  d¡| ¡qbt ¡t ¡t  |¡W5QRXdS)NTF)r,r­r4rr6rërñr¸rtr¹rðÚupdater¦rqršr»r®ru)Z new_activeZcurrentZthreadsrÜrÃr#r#r$Ú _after_fork„s0        rõÚregister_at_fork)Zafter_in_child)rŽ)YÚosÚ_osÚsysr¡Ú_threadÚtimerrbZ _weakrefsetrÚ itertoolsrrfrr/Ú _collectionsrrWÚ ImportErrorÚ collectionsÚ__all__Ústart_new_threadr¯Ú allocate_lockr,r·rrr›r]rVÚerrorrrr&r r r%rrrr*r'r rrrrrGrÚ__next__r�r‘r­r4r®r¦r¸rtr¹rrÒrrÓrÚ tracebackrÔrÞrÕr¤rrërír Z currentThreadrZ activeCountrðr rrñròr rórZ_threading_localrõÚhasattrrör#r#r#r$ÚsØ   û      q'P&O   þ5   ( 5