g/gdZddlZddlZddlZddlZddlZddlmZddlmZddlm Z  ddlm Z m Z e ed \ZZejj"ZGd d eZ Gd d e ZGddeZGdde ZGdde ZGddeZGddeZGddej2Zy#e $r e dwxYw))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.creZdZejZdZedZdZ dZ dZ dZ dZ edZy ) r c|tjj}|jdk(|_t j dk(xs |j}tdD]2} tj||||j|x}|_ n tdtjd|jz|j!t j dk7rd}tj"|||jj$`ddlm} | |jj$d tj*|tj,|jj$fd yy#t$rY!wxYw) Nforkwin32dzcannot find name for semaphorezcreated semlock with handle %sc8|jjyN)_semlock _after_fork)objs B/opt/alt/python312/lib64/python3.12/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__2sI ;**668C002f<\\W,A0A0A sA %5%=%=%4??+<&  T] ""BC C 3bii?@  <<7 " +  $ $T; 7 ==   ) 3 T]]'' 5 MM$ 0 04==3E3E2G'( * *#  s).E:: FFc8ddlm}t|||dy)Nr ) unregisterr)r.r;r)r-r;s rr0zSemLock._cleanupTs044%rcp|jj|_|jj|_yr)racquirereleaser1s rr+zSemLock._make_methodsZs$}},, }},, rc6|jjSr)r __enter__r?s rrAzSemLock.__enter__^s}}&&((rc4|jj|Sr)r__exit__r1argss rrCzSemLock.__exit__as%t}}%%t,,rcTtj||j}tjdk(r.tj j |j}n#|jr td|j}||j|j|jfS)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 "**,@@KA  "$JKK A277BKK11rctjj||_t j d|dz|j d|_y)Nz recreated blocker with handle %rrF)r&r _rebuildrr r)r+r"r1states r __setstate__zSemLock.__setstate__rsD(00995A  5a@A !rc|tjjddttj S)N semprefix-)r current_process_confignextr _randrrr'zSemLock._make_nameys/!113;;KHw}}-/ /rN)__name__ __module__ __qualname__tempfile_RandomNameSequencerXr9 staticmethodr0r+rArCrLrQr'rYrrr r .sY (H ( ( *E *D&& -)- 2"//rr c eZdZddZdZdZy)rcHtj|t|t|yNr5)r r9 SEMAPHORE SEM_VALUE_MAXr1r3r5s rr9zSemaphore.__init__sy%CHrc6|jjSr)r _get_valuer?s r get_valuezSemaphore.get_values}}''))rc |jj}d|jjd|dS#t$rd}Y*wxYw)Nunknown<(value=)>)rrh Exception __class__rZr1r3s r__repr__zSemaphore.__repr__sG MM,,.E$(>>#:#:EBB E s9 AANr )rZr[r\r9rirrrYrrrrsI*CrrceZdZddZdZy)rc@tj|t|||yrbr r9rdrfs rr9zBoundedSemaphore.__init__sy%C@rc |jj}d|jjd|d|jj dS#t$rd}YAwxYw)Nrkrlrmz , maxvalue=rn)rrhrorprZr4rqs rrrzBoundedSemaphore.__repr__sY MM,,.E'' 0F0FH H E sA AANrsrZr[r\r9rrrYrrrrsAHrrceZdZdZdZy)rc@tj|tdd|yNr rcrvr1r5s rr9z Lock.__init__sy!QC8rc |jjrdtjj}t j jdk7rd|dt j jzz }n?|jjsd}n"|jjdkDrd}nd}d|jjd |d S#t$rd}Y*wxYw) N MainThread|NonerSomeOtherThreadSomeOtherProcessrkrlz(owner=rn) r_is_miner rUr- threadingcurrent_thread_is_zero_countrorprZ)r1r-s rrrz Lock.__repr__s }}%%'..055++-22lBC)":":"<"A"AAAD]]++-%%'!+()$(>>#:#:DAA D sB=C C*)C*NrxrYrrrrs 9BrrceZdZdZdZy)rc@tj|tdd|yr{)r r9RECURSIVE_MUTEXr|s rr9zRLock.__init__s1#>rc, |jjr~tjj}t j jdk7r$|dt j jzz }|jj}nH|jjsd\}}n(|jjdkDrd\}}nd\}}d|jjd |d |d S#t$rd\}}Y0wxYw) Nr~r)rrr)rnonzero)rr)rkrkrl(, rn) rrr rUr-rrrrrorprZ)r1r-counts rrrzRLock.__repr__s /}}%%'..055++-22lBC)":":"<"A"AAAD ,,.]]++-' e%%'!+: e; e"&!8!8$FF /.KD% /sC DDDNrxrYrrrrs ?GrrcVeZdZd dZdZdZdZdZdZdZ d d Z dd Z d Z d d Z y)rNc|xs|j|_|jd|_|jd|_|jd|_|j yNr)r_lockr_sleeping_count _woken_count_wait_semaphorer+)r1lockr5s rr9zCondition.__init__sS(SYY[ "}}Q/MM!,"}}Q/ rctj||j|j|j|j fSr)r rGrrrrr?s rrLzCondition.__getstate__s:% D00!!4#7#79 9rcZ|\|_|_|_|_|j yr)rrrrr+rOs rrQzCondition.__setstate__s*49 2T) D0 rc6|jjSr)rrAr?s rrAzCondition.__enter__szz##%%rc4|jj|Sr)rrCrDs rrCzCondition.__exit__s"tzz""D))rcp|jj|_|jj|_yr)rr=r>r?s rr+zCondition._make_methodss$zz)) zz)) rc  |jjj|jjjz }d|j j d|jd|dS#t$rd}Y7wxYw)Nrkrlrrrn)rrrhrrorprZr)r1 num_waiterss rrrzCondition.__repr__ss $//88CCE,,55@@BCK"&!8!8$**kRR $#K $sA A55 BBc||jjjsJd|jj |jjj }t |D]}|jj  |jjd||jj t |D]}|jjS#|jj t |D]}|jjwxYw)Nz,must acquire() condition before using wait()T) rrrrr>rr%rr=r)r1timeoutrr7s rwaitzCondition.waitszz""++- >= >- $$& ##**,uA JJ    %''//g>    % % '5\ ""$"    % % '5\ ""$"s C55AD;c|jjjsJd|jj drJd|j j dr@|j j d}|sJd|j j dr@d}||kr[|j j dr@|jj|dz }||kr|j j dr@|rdt|D]}|j j |jj dr |jj dryyy)Nzlock is not ownedFznotify: Bug in sleeping_count.acquire- res should not be Falserr ) rrrrr=rrr>r%)r1nressleepersr7s rnotifyzCondition.notifysVzz""++-B/BB-''//  *) * ''.&&..u5C 87 83''. lt33;;EB  ( ( * MHlt33;;EB 8_!!))+%&&..u5&&..u5 rcD|jtjy)N)r)rr#maxsizer?s r notify_allzCondition.notify_all/s ckk "rc|}|r|S|tj|z}nd}d}|s<||tjz }|dkr |S|j|}|s<|Sr)time monotonicr)r1 predicaterresultendtimewaittimes rwait_forzCondition.wait_for2s~ M  nn&0GGH""T^^%55q=  IIh [F  rrrs)rZr[r\r9rLrQrArCr+rrrrrrrYrrrrs:9  &**S%.4#rrc8eZdZdZdZdZdZd dZdefdZ y) rcx|j|j|_|jd|_yr)rr_condr_flagr|s rr9zEvent.__init__Js(]]388:. ]]1% rc|j5|jjdr$|jj dddy dddy#1swYyxYwNFT)rrr=r>r?s ris_setz Event.is_setNsD ZZzz!!%( ""$Z ZZs7A AA c|j5|jjd|jj|jj dddy#1swYyxYwNF)rrr=r>rr?s rsetz Event.setUsE ZZ JJ  u % JJ   JJ ! ! #ZZs AA&&A/c||j5|jjddddy#1swYyxYwr)rrr=r?s rclearz Event.clear[s% ZZ JJ  u %ZZs2;Nch|j5|jjdr|jjn|jj ||jjdr$|jj dddy dddy#1swYyxYwr)rrr=r>r)r1rs rrz Event.wait_sv ZZzz!!%( ""$ (zz!!%( ""$ZZZsBB(B((B1returnc||jrdnd}dt|jdt|dd|dS)Nrunsetrlz at z#x >)rtyper\id)r1 set_statuss rrrzEvent.__repr__ks="kkmU 4:**+44}Aj\KKrr) rZr[r\r9rrrrstrrrrYrrrrHs)&$ & L#LrrceZdZd dZdZdZedZejdZedZ e jdZ y) BarrierNcddl}ddlm}||jddz}|j }|j |||||fd|_d|_y)Nrr ) BufferWrapperr7r)structheaprcalcsizerrQ_stater) r1partiesactionrr5rrwrapperconds rr9zBarrier.__init__tsR' 4q 89}} 7FGT7CD  rc|\|_|_|_|_|_|jj j d|_y)Nr7)_parties_action_timeoutr_wrappercreate_memoryviewcast_arrayrOs rrQzBarrier.__setstate__}s>&+ $ dm T]mm557<rs    44"%(^ ((66 N/fN/h C C& Hy H"B7B2GGG4ii^%LF%LT"i"k 4 3 444s B>>C