Nf-gdZddlZddlZddlZddlZddlZddlmZddlmZddlm Z  ddlm Z m Z n#e $r e dwxYwe ed \ZZej jZGd d eZ Gd d e ZGddeZGdde ZGdde ZGddeZGddeZGddejZdS))LockRLock SemaphoreBoundedSemaphore ConditionEventN)context)process)util)SemLock sem_unlinkzThis platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.c|eZdZejZdZedZdZ dZ dZ dZ dZ edZd S) r c|tj}|}tjdkp|dk}t dD]E} tj|||| |x}|_ n#t$rYBwxYwtdtj d|jz|tjdkrd} tj|| |j jKddlm} | |j jd tj|tj|j jfd dSdS) Nwin32forkdzcannot find name for semaphorezcreated semlock with handle %sc8|jdSN)_semlock _after_fork)objs 2/usr/lib/python3.11/multiprocessing/synchronize.pyrz%SemLock.__init__.._after_forkGs ((*****r )register semaphorer) exitpriority)r _default_context get_contextget_start_methodsysplatformrange_multiprocessingr _make_namerFileExistsErrorr debughandle _make_methodsregister_after_forknameresource_trackerrFinalize_cleanup) selfkindvaluemaxvaluectxr, unlink_nowislrrs r__init__zSemLock.__init__2s ;*6688C##%%\W,> s D DA %5%=%4??+<+<& &  T] #     ""BCC C 3bi?@@@  <7 " " + + +  $T; 7 7 7 =  ) 3 2 2 2 2 2 HT]' 5 5 5 M$ 04=3E2G'( * * * * * * * )s1B BBcHddlm}t|||ddS)Nr ) unregisterr)r-r:r)r,r:s rr/zSemLock._cleanupTs:0000004 4%%%%%rcJ|jj|_|jj|_dSr)racquirereleaser0s rr*zSemLock._make_methodsZs}, }, rc4|jSr)r __enter__r>s rr@zSemLock.__enter__^s}&&(((rc |jj|Sr)r__exit__r0argss rrBzSemLock.__exit__as%t}%t,,rctj||j}tjdkr,tj|j}n|j}||j|j |j fS)Nr) r assert_spawningrr"r#get_spawning_popenduplicate_for_childr)r1r3r,)r0r7hs r __getstate__zSemLock.__getstate__dsc%%% ] <7 " "*,,@@KKAA A27BK11rctjj||_t jd|dz|dS)Nz recreated blocker with handle %rr)r%r _rebuildrr r(r*r0states r __setstate__zSemLock.__setstate__msF(095A  5a@AAA rcvtjjddttjS)N semprefix-)r current_process_confignextr _randrrr&zSemLock._make_namers6!133;KHHHw}---/ /rN)__name__ __module__ __qualname__tempfile_RandomNameSequencerVr8 staticmethodr/r*r@rBrJrOr&rWrrr r .s (H ( * *E * * *D&&\& ---)))---222 //\///rr c"eZdZddZdZdZdS)rr cLtj|t|t|dSNr4)r r8 SEMAPHORE SEM_VALUE_MAXr0r2r4s rr8zSemaphore.__init__}s$y%CHHHHHHrc4|jSr)r _get_valuer>s r get_valuezSemaphore.get_values}'')))rc |j}n#t$rd}YnwxYwd|jjd|dS)Nunknown<(value=)>)rrf Exception __class__rXr0r2s r__repr__zSemaphore.__repr__s[ M,,..EE   EEE #'>#:#:#:EEEBB  ++Nr )rXrYrZr8rgrprWrrrr{sOIIII***CCCCCrrceZdZddZdZdS)rr cBtj|t|||dSr`r r8rbrds rr8zBoundedSemaphore.__init__s$y%C@@@@@@rc |j}n#t$rd}YnwxYwd|jjd|d|jjdS)Nrirjrkz , maxvalue=rl)rrfrmrnrXr3ros rrpzBoundedSemaphore.__repr__sp M,,..EE   EEE ''' 0F0F0FH HrqNrrrXrYrZr8rprWrrrrs@AAAAHHHHHrrceZdZdZdZdS)rcBtj|tdd|dSNr rarur0r4s rr8z Lock.__init__s$y!QC888888rc |jrStjj}t jjdkr|dt jjzz }nB|jdkrd}n"|jdkrd}nd}n#t$rd}YnwxYwd |j j d |d S) N MainThread|r NonerSomeOtherThreadSomeOtherProcessrirjz(owner=rl) r_is_miner rSr, threadingcurrent_threadrf_countrmrnrX)r0r,s rrpz Lock.__repr__s }%%'' *.005+--2lBBC)":"<"<"AAAD))++q00%%''!++()   DDD #'>#:#:#:DDDAAsB.B11 C?CNrwrWrrrrs7999BBBBBrrceZdZdZdZdS)rcBtj|tdd|dSrz)r r8RECURSIVE_MUTEXr{s rr8zRLock.__init__s$1#>>>>>>rc |jrltjj}t jjdkr|dt jjzz }|j}nK|jdkrd\}}n(|jdkrd\}}nd\}}n#t$rd\}}YnwxYwd |j j d |d |d S) Nr}r~r )rrr)rnonzero)rr)ririrj(, rl) rrr rSr,rrrrfrmrnrX)r0r,counts rrpzRLock.__repr__s /}%%'' <.005+--2lBBC)":"<"<"AAAD ,,..))++q00' ee%%''!++: ee; e / / /.KD%%% /!%!8!8!8$$$FFsCCC%$C%NrwrWrrrrs7???GGGGGrrcXeZdZddZdZdZdZdZdZdZ dd Z dd Z d Z dd Z dS)rNc|p||_|d|_|d|_|d|_|dSNr)r_lockr_sleeping_count _woken_count_wait_semaphorer*)r0lockr4s rr8zCondition.__init__sj(SYY[[ "}}Q//MM!,,"}}Q// rc^tj||j|j|j|jfSr)r rFrrrrr>s rrJzCondition.__getstate__s2%%% D0!4#79 9rcd|\|_|_|_|_|dSr)rrrrr*rMs rrOzCondition.__setstate__s649 2T) D0 rc4|jSr)rr@r>s rr@zCondition.__enter__sz##%%%rc |jj|Sr)rrBrCs rrBzCondition.__exit__s"tz"D))rcJ|jj|_|jj|_dSr)rr<r=r>s rr*zCondition._make_methodssz) z) rc |jj|jjz }n#t$rd}YnwxYwd|jjd|jd|dS)Nrirjrrrl)rrrfrrmrnrXr)r0 num_waiterss rrpzCondition.__repr__s $/8CCEE,5@@BBCKK $ $ $#KKK $!%!8!8!8$***kkkRRs=A AAch|jjs Jd|j|jj}t |D]}|j |jd||j t |D]}|jS#|j t |D]}|jwxYw)Nz,must acquire() condition before using wait()T) rrrrr=rr$rr<r)r0timeoutrr6s rwaitzCondition.waits@z"++-- > >= > > > $$&&& #**,,u ! !A J    %'//g>>   % % ' ' '5\\ % % ""$$$$ %   % % ' ' '5\\ % % ""$$$$ %s C++AD1r c|jjs Jd|jdr Jd|jdr@|jd}|s Jd|jd@d}||krX|jdr>|j|dz }||kr|jd>|rbt|D]}|j|jdr |jddSdSdS)Nzlock is not ownedFznotify: Bug in sleeping_count.acquire- res should not be Falserr ) rrrrr<rrr=r$)r0nressleepersr6s rnotifyzCondition.notifysz"++--BB/BBBB'//  * *) * * * ''.. 8&..u55C 8 87 8 8 8''.. 8 llt3;;EBBl  ( ( * * * MHllt3;;EBBl  8__ , ,!))++++&..u55 &..u55         rcF|tjdS)N)r)rr"maxsizer>s r notify_allzCondition.notify_all(s ck """""rc|}|r|S|tj|z}nd}d}|s@||tjz }|dkrn!|||}|@|Sr)time monotonicr)r0 predicaterresultendtimewaittimes rwait_forzCondition.wait_for+s  M  n&&0GGGH !""T^%5%55q== IIh   Y[[F  ! rrrr)rXrYrZr8rJrOr@rBr*rprrrrrWrrrrs999  &&&******SSS%%%%.4###rrc:eZdZdZdZdZdZd dZdefdZ dS) rc|||_|d|_dSr)rr_condr_flagr{s rr8zEvent.__init__Cs4]]388::.. ]]1%% rc|j5|jdr'|j ddddS ddddS#1swxYwYdSNFT)rrr<r=r>s ris_setz Event.is_setGs Z  z!!%((  ""$$$                           s5A AAAc|j5|jd|j|jddddS#1swxYwYdSNF)rrr<r=rr>s rsetz Event.setNs Z $ $ J  u % % % J   J ! ! # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sA A""A&)A&cz|j5|jdddddS#1swxYwYdSr)rrr<r>s rclearz Event.clearTs Z & & J  u % % % & & & & & & & & & & & & & & & & & &s 044Ncf|j5|jdr|jn|j||jdr'|j ddddS ddddS#1swxYwYdSr)rrr<r=r)r0rs rrz Event.waitXs  Z  z!!%(( ) ""$$$$ (((z!!%((  ""$$$                          sBB&B&&B*-B*returnc|rdnd}dt|jdt|dd|dS)Nrunsetrjz at z#x >)rtyperZid)r0 set_statuss rrpzEvent.__repr__dsK"kkmm8UU K4::*KK4KKKjKKKKrr) rXrYrZr8rrrrstrrprWrrrrAs&&&$$$ &&&    L#LLLLLLrrceZdZd dZdZdZedZejdZedZ e jdZ dS) BarrierNcddl}ddlm}||ddz}|}||||||fd|_d|_dS)Nrr ) BufferWrapperr6r)structheaprcalcsizerrO_stater) r0partiesactionrr4rrwrapperconds rr8zBarrier.__init__ms{ ''''''- 4 4q 899}} 7FGT7CDDD  rc|\|_|_|_|_|_|jd|_dS)Nr6)_parties_action_timeoutr_wrappercreate_memoryviewcast_arrayrMs rrOzBarrier.__setstate__vsF&+ $ dm T]m5577<s rrJzBarrier.__getstate__{s" t|T] DM+ +rc|jdSrrr>s rrzBarrier._state{1~rc||jd<dSrrros rrzBarrier._state Arc|jdSNr rr>s rrzBarrier._countrrc||jd<dSrrros rrzBarrier._countrr)NN) rXrYrZr8rOrJpropertyrsetterrrWrrrrksBBB +++X ]]X ]]rr)__all__rr"r[r%rr r r r r ImportErrorlistr$rrbrcobjectrrrrrrrrWrrrs      4444444444444 +3 4 444"T%%((^^ (6 G/G/G/G/G/fG/G/G/Z C C C C C C C C& H H H H Hy H H H"BBBBB7BBB2GGGGGGGGG4iiiiiiii^%L%L%L%L%LF%L%L%LT"""""i"""""s 5A