f/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}|dk|_t jdkp|j}tdD]E} tj |||| |x}|_ n#t$rYBwxYwtdtjd|jz|t jdkrd}tj|||j jKddlm} | |j jd tj|tj|j jfd dSdS) Nforkwin32dzcannot find name for semaphorezcreated semlock with handle %sc8|jdSN)_semlock _after_fork)objs B/opt/alt/python311/lib64/python3.11/multiprocessing/synchronize.pyrz%SemLock.__init__.._after_forkGs ((*****r )register semaphorer) exitpriority)r _default_context get_contextget_start_method _is_fork_ctxsysplatformrange_multiprocessingr _make_namerFileExistsErrorr debughandle _make_methodsregister_after_forknameresource_trackerrFinalize_cleanup) selfkindvaluemaxvaluectx unlink_nowislrrs r__init__zSemLock.__init__2s ;*6688C0022f<\W,A0A 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'( * * * * * * * )s'1B B'&B'cHddlm}t|||ddS)Nr ) unregisterr)r.r;r)r-r;s rr0zSemLock._cleanupTs:0000004 4%%%%%rcJ|jj|_|jj|_dSr)racquirereleaser1s rr+zSemLock._make_methodsZs}, }, rc4|jSr)r __enter__r?s rrAzSemLock.__enter__^s}&&(((rc |jj|Sr)r__exit__r1argss rrCzSemLock.__exit__as%t}%t,,rctj||j}tjdkr,tj|j}n|jrtd|j}||j |j |j fS)NrzA SemLock created in a fork context is being shared with a process in a spawn context. This is not supported. Please use the same context to create multiprocessing objects and Process.) r assert_spawningrr#r$get_spawning_popenduplicate_for_childr*r" RuntimeErrorr2r4r-)r1r8hs r __getstate__zSemLock.__getstate__ds%%% ] <7 " "*,,@@KKAA  K"$JKKK A27BK11rctjj||_t jd|dz|d|_dS)Nz recreated blocker with handle %rrF)r&r _rebuildrr r)r+r"r1states r __setstate__zSemLock.__setstate__rsN(095A  5a@AAA !rcvtjjddttjS)N semprefix-)r current_process_confignextr _randrrr'zSemLock._make_nameys6!133;KHHHw}---/ /rN)__name__ __module__ __qualname__tempfile_RandomNameSequencerXr9 staticmethodr0r+rArCrLrQr'rYrrr r .s (H ( * *E * * *D&&\& ---)))--- 2 2 2"""//\///rr c"eZdZddZdZdZdS)rr cLtj|t|t|dSNr5)r r9 SEMAPHORE SEM_VALUE_MAXr1r3r5s rr9zSemaphore.__init__s$y%CHHHHHHrc4|jSr)r _get_valuer?s r get_valuezSemaphore.get_values}'')))rc |j}n#t$rd}YnwxYwd|jjd|dS)Nunknown<(value=)>)rrh Exception __class__rZr1r3s r__repr__zSemaphore.__repr__s[ M,,..EE   EEE #'>#:#:#:EEEBB  ++Nr )rZr[r\r9rirrrYrrrrsOIIII***CCCCCrrceZdZddZdZdS)rr cBtj|t|||dSrbr r9rdrfs rr9zBoundedSemaphore.__init__s$y%C@@@@@@rc |j}n#t$rd}YnwxYwd|jjd|d|jjdS)Nrkrlrmz , maxvalue=rn)rrhrorprZr4rqs rrrzBoundedSemaphore.__repr__sp M,,..EE   EEE ''' 0F0F0FH HrsNrtrZr[r\r9rrrYrrrrs@AAAAHHHHHrrceZdZdZdZdS)rcBtj|tdd|dSNr rcrwr1r5s rr9z 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 NonerSomeOtherThreadSomeOtherProcessrkrlz(owner=rn) r_is_miner rUr- threadingcurrent_threadrh_countrorprZ)r1r-s rrrz Lock.__repr__s }%%'' *.005+--2lBBC)":"<"<"AAAD))++q00%%''!++()   DDD #'>#:#:#:DDDAAsB.B11 C?CNryrYrrrrs7999BBBBBrrceZdZdZdZdS)rcBtj|tdd|dSr|)r r9RECURSIVE_MUTEXr}s rr9zRLock.__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) Nrrr )rrr)rnonzero)rr)rkrkrl(, rn) rrr rUr-rrrrhrorprZ)r1r-counts rrrzRLock.__repr__s /}%%'' <.005+--2lBBC)":"<"<"AAAD ,,..))++q00' ee%%''!++: ee; e / / /.KD%%% /!%!8!8!8$$$FFsCCC%$C%NryrYrrrrs7???GGGGGrrcXeZdZddZdZdZdZdZdZdZ dd Z dd Z d Z dd Z dS)rNc|p||_|d|_|d|_|d|_|dSNr)r_lockr_sleeping_count _woken_count_wait_semaphorer+)r1lockr5s rr9zCondition.__init__sj(SYY[[ "}}Q//MM!,,"}}Q// rc^tj||j|j|j|jfSr)r rGrrrrr?s rrLzCondition.__getstate__s2%%% D0!4#79 9rcd|\|_|_|_|_|dSr)rrrrr+rOs rrQzCondition.__setstate__s649 2T) D0 rc4|jSr)rrAr?s rrAzCondition.__enter__sz##%%%rc |jj|Sr)rrCrDs rrCzCondition.__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)Nrkrlrrrn)rrrhrrorprZr)r1 num_waiterss rrrzCondition.__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)r1timeoutrr7s 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%)r1nressleepersr7s rnotifyzCondition.notifysz"++--BB/BBB-'//  * *) * * ''.. 8&..u55C 8 87 8 83''.. 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)r1 predicaterresultendtimewaittimes rwait_forzCondition.wait_for2s  M  n&&0GGGH !""T^%5%55q== IIh   Y[[F  ! rrrt)rZr[r\r9rLrQrArCr+rrrrrrrYrrrrs999  &&&******SSS%%%%.4###rrc:eZdZdZdZdZdZd dZdefdZ dS) rc|||_|d|_dSr)rr_condr_flagr}s rr9zEvent.__init__Js4]]388::.. ]]1%% rc|j5|jdr'|j ddddS ddddS#1swxYwYdSNFT)rrr=r>r?s ris_setz Event.is_setNs Z  z!!%((  ""$$$                           s5A AAAc|j5|jd|j|jddddS#1swxYwYdSNF)rrr=r>rr?s rsetz Event.setUs Z $ $ J  u % % % J   J ! ! # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sA A""A&)A&cz|j5|jdddddS#1swxYwYdSr)rrr=r?s rclearz Event.clear[s Z & & J  u % % % & & & & & & & & & & & & & & & & & &s 044Ncf|j5|jdr|jn|j||jdr'|j ddddS ddddS#1swxYwYdSr)rrr=r>r)r1rs rrz Event.wait_s  Z  z!!%(( ) ""$$$$ (((z!!%((  ""$$$                          sBB&B&&B*-B*returnc|rdnd}dt|jdt|dd|dS)Nrunsetrlz at z#x >)rtyper\id)r1 set_statuss rrrzEvent.__repr__ksK"kkmm8UU K4::*KK4KKKjKKKKrr) rZr[r\r9rrrrstrrrrYrrrrHs&&&$$$ &&&    L#LLLLLLrrceZdZd dZdZdZedZejdZedZ e jdZ dS) BarrierNcddl}ddlm}||ddz}|}||||||fd|_d|_dS)Nrr ) BufferWrapperr7r)structheaprcalcsizerrQ_stater) r1partiesactionrr5rrwrapperconds rr9zBarrier.__init__ts{ ''''''- 4 4q 899}} 7FGT7CDDD  rc|\|_|_|_|_|_|jd|_dS)Nr7)_parties_action_timeoutr_wrappercreate_memoryviewcast_arrayrOs rrQzBarrier.__setstate__}sF&+ $ dm T]m5577<rs      4444444444444 +3 4 444"T%%((^^ (6 N/N/N/N/N/fN/N/N/h 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