+
    i0  c                   s   . ROt ^ RIt^ RIt^ RIt^ RIt^ RIt^RIHt ^RIHt ^R	IH	t	  ^ R
IH
t
Ht ^ t^t]P                  P                  t ! R R]4      t
 ! R R]
4      t ! R R]4      t ! R R ]
4      t ! R R]
4      t ! R R]4      t ! R R]4      t ! R R]P.                  4      tR#   ] d
    ]! R4      hi ; i)LockRLock	SemaphoreBoundedSemaphore	ConditionEventN)context)process)util)SemLock
sem_unlinkc                   s   a  ] tR t^-t o ]P
                  ! 4       tR t]R 4       t	R t
R tR tR tR tR t]R	 4       tR
tV tR# )r	   c               s@   Vf   \         P                  P                  4       pVP                  4       R8H  V n        \
        P                  R8H  ;'       g    V P                  p\        ^d4       F0  p \        P                  ! WW0P                  4       V4      ;qpn         M	  \        R4      h\        P                  ! RVP                  ,          4       V P!                  4        \
        P                  R8w  d   R p\        P"                  ! W4       V P                  P$                  ec   ^RIHp	 V	! V P                  P$                  R4       \        P*                  ! V \        P,                  V P                  P$                  3^ R7       R # R #   \         d     EK/  i ; i)	NZforkwin32zcannot find name for semaphorezcreated semlock with handle %sc                 s:    V P                   P                  4        R # N)_semlock_after_fork)Zobj   &4/usr/lib64/python3.14/multiprocessing/synchronize.pyr   Z%SemLock.__init__.<locals>._after_forkF   s    ((*    )register	semaphore)Zexitpriority)r   Z_default_contextZget_contextZget_start_method_is_fork_ctxsysplatformrange_multiprocessingr	   
_make_namer   ZFileExistsErrorr   debughandle_make_methodsZregister_after_forknameresource_trackerr   ZFinalize_cleanup)
selfkindvaluemaxvaluectxZ
unlink_nowislr   r   s
   &&&&$     r   __init__ZSemLock.__init__1   sD   ;**668C002f<\\W,AA0A0A
sA%5%=%=??+<&   ]   ""BCC

3bii?@<<7"+$$T7==) 3T]]''5MM$ 0 04==3E3E2G'(* * # s   1,FFFc                s:    ^RI Hp \        V 4       V! V R4       R# )   )
unregisterr   N)r   r)   r
   )r   r)      & r   r   ZSemLock._cleanupS   s    044%r   c                r    V P                   P                  V n        V P                   P                  V n        R # r   )r   acquirereleaser    r   r   r   ZSemLock._make_methodsY   s$    }},,}},,r   c                6    V P                   P                  4       # r   )r   _is_zeror.   r   r   lockedZSemLock.locked]   s    }}%%''r   c                r/   r   )r   	__enter__r.   r   r   r2   ZSemLock.__enter__`   s    }}&&((r   c                6    V P                   P                  ! V!  # r   )r   __exit__r    Zargs   &*r   r4   ZSemLock.__exit__c   s    }}%%t,,r   c                sf   \         P                  ! V 4       V P                  p\        P                  R 8X  d0   \         P
                  ! 4       P                  VP                  4      pM)V P                  '       d   \        R4      hVP                  pW!P                  VP                  VP                  3# )r   zA 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_spawningr   r   r   Zget_spawning_popenZduplicate_for_childr   r   ZRuntimeErrorr!   r#   r   )r    r&   Zh   &  r   __getstate__ZSemLock.__getstate__f   s    %]]<<7"**,@@KA   " $J K K 		A77BKK11r   c                s    \         P                  P                  ! V!  V n        \        P
                  ! R V^ ,          ,          4       V P                  4        RV n        R# )z recreated blocker with handle %rFN)r   r	   Z_rebuildr   r   r   r   r   r    Zstate   &&r   __setstate__ZSemLock.__setstate__t   sD    (00995A

5a@A!r   c                 s    \         P                  ! 4       P                  R ,          : R\        \        P
                  4      : 2# )Z	semprefixZ-)r   current_processZ_configZnextr	   _rand r   r   r   ZSemLock._make_name{   s2    !113;;KHHw}}-/ 	/r   )r   r   r,   r-   N)__name__
__module____qualname____firstlineno__tempfileZ_RandomNameSequencer>   r'   Zstaticmethodr   r   r1   r2   r4   r9   r<   r   __static_attributes____classdictcell__Z__classdict__   @r   r	   r	   -   s_     ((*E *D & &
-()-2" / /r   r	   c                   s6   a  ] tR t^t o RR ltR tR tRtV tR# )r   c               sL    \         P                  ! V \        V\        VR 7       R# r$   N)r	   r'   	SEMAPHORESEM_VALUE_MAXr    r"   r$      &&$r   r'   ZSemaphore.__init__   s    y%CHr   c                r/   )zmReturns current value of Semaphore.

Raises NotImplementedError on Mac OSX
because of broken sem_getvalue().
)r   Z
_get_valuer.   r   r   	get_valueZSemaphore.get_value   s     }}''))r   c                s     V P                  4       pRV P                  P                  : RV: R2#   \         d    R p L.i ; i)unknown<(value=)>)rO   	Exception	__class__r@   r    r"   r*   r   __repr__ZSemaphore.__repr__   sA    	NN$E $(>>#:#:EBB  	E	s   1 A Ar?   Nr(   )	r@   rA   rB   rC   r'   rO   rW   rE   rF   rG   rH   r   r   r      s     I*C Cr   c                   s0   a  ] tR t^t o RR ltR tRtV tR# )r   c               sB    \         P                  ! V \        WVR 7       R# rI   r	   r'   rK   rM   rN   r   r'   ZBoundedSemaphore.__init__   s    y%C@r   c                s     V P                  4       pRV P                  P                  : RV: RV P                  P
                  : R2#   \         d    R p LFi ; i)rP   rQ   rR   z, maxvalue=rS   )rO   rT   rU   r@   r   r#   rV   r*   r   rW   ZBoundedSemaphore.__repr__   sS    	NN$E ''0F0FH 	H  	E	s   A	 	AAr?   NrX   r@   rA   rB   rC   r'   rW   rE   rF   rG   rH   r   r   r      s     AH Hr   c                   s,   a  ] tR t^t o R tR tRtV tR# )r    c               D    \         P                  ! V \        ^^VR7       R# r(   rJ   NrY   r    r$      &$r   r'   ZLock.__init__   s    y!QC8r   c                s    V P                   P                  4       '       dr   \        P                  ! 4       P                  p\
        P                  ! 4       P                  R 8w  d.   VR\
        P                  ! 4       P                  ,           ,          pMHV P                   P                  4       '       g   RpM%V P                   P                  4       ^ 8  d   RpMRp RV P                  P                  : RV: R2#   \         d    Rp L.i ; i)	
MainThread|NoneSomeOtherThreadSomeOtherProcessrP   rQ   z(owner=rS   )r   _is_miner   r=   r   	threadingcurrent_threadr0   _countrT   rU   r@   )r    r   r*   r   rW   ZLock.__repr__   s    	}}%%''..055++-22lBC)":":"<"A"AAAD]]++--%%'!+() $(>>#:#:DAA  	D	s/   C: A0C: C: 3C: 6!C: C: :D
	D
r?   NrZ   rG   rH   r   r    r       s     9B Br   c                   s,   a  ] tR t^t o R tR tRtV tR# )r   c               r[   r\   )r	   r'   RECURSIVE_MUTEXr]   r^   r   r'   ZRLock.__init__   s    1#>r   c                s^    V P                   P                  4       '       d   \        P                  ! 4       P                  p\
        P                  ! 4       P                  R 8w  d.   VR\
        P                  ! 4       P                  ,           ,          pV P                   P                  4       pMKV P                   P                  4       '       g   R^ r!M'V P                   P                  4       ^ 8  d   RRr!MRRr! RV P                  P                  : RV: R	V: R
2#   \         d    RRr! L3i ; i)r_   r`   ra   rb   Znonzerorc   rP   rQ   (, rS   )r   rd   r   r=   r   re   rf   rg   r0   rT   rU   r@   )r    r   countr8   r   rW   ZRLock.__repr__   s    	/}}%%''..055++-22lBC)":":"<"A"AAAD,,.]]++--$ae%%'!+/e0)e "&!8!8$FF  	/#Y%	/s/   D B
D -D D "D 4D D,+D,r?   NrZ   rG   rH   r   r   r      s     ?G Gr   c                   sr   a  ] tR t^t o RR ltR tR tR tR tR t	R t
RR	 ltRR
 ltR tRR ltRtV tR# )r   Nc               s    T;'       g    VP                  4       V n        VP                  ^ 4      V n        VP                  ^ 4      V n        VP                  ^ 4      V n        V P                  4        R#     N)r   _lockr   _sleeping_count_woken_count_wait_semaphorer   )r    Zlockr$   rN   r   r'   ZCondition.__init__   sV    ((SYY[
"}}Q/MM!,"}}Q/r   c                s    \         P                  ! V 4       V P                  V P                  V P                  V P
                  3# r   )r   r7   rn   ro   rp   rq   r.   r   r   r9   ZCondition.__getstate__   s:    %

D00!!4#7#79 	9r   c                s\    Vw  V n         V n        V n        V n        V P	                  4        R # r   )rn   ro   rp   rq   r   r:   r;   r   r<   ZCondition.__setstate__   s*    49	2T)		D0r   c                r/   r   )rn   r2   r.   r   r   r2   ZCondition.__enter__   s    zz##%%r   c                r3   r   )rn   r4   r5   r6   r   r4   ZCondition.__exit__   s    zz""D))r   c                r+   r   )rn   r,   r-   r.   r   r   r   ZCondition._make_methods   s$    zz))zz))r   c                s     V P                   P                  4       V P                  P                  4       ,
          pRV P                  P
                  : RV P                  : RV: R2#   \         d    R p L<i ; i)rP   rQ   ri   rj   rS   )ro   rO   rp   rT   rU   r@   rn   )r    Znum_waitersr*   r   rW   ZCondition.__repr__   sf    	$//99;,,6689K "&!8!8$**kRR  	$#K	$s   9A( (A87A8c                s2   V P                   P                  4        V P                  P                  P	                  4       p\        V4       F  pV P                  P                  4        K  	   V P                  P                  R V4      V P                  P                  4        \        V4       F  pV P                  P                  4        K  	  #   T P                  P                  4        \        T4       F  pT P                  P                  4        K  	  i ; i)T)	ro   r-   rn   r   rg   r   rq   r,   rp   )r    timeoutrk   r%   s   &&  r   waitZCondition.wait  s    
 	$$& 

##**,uAJJ  		%''//g> %%' 5\

""$ " %%' 5\

""$ "s   ,C ADc                s   V P                   P                  R 4      '       d   V P                  P                  R 4      pK>  ^ pW18  dG   V P                  P                  R 4      '       d&   V P                  P	                  4        V^,          pKL  V'       dR   \        V4       F  pV P                   P                  4        K  	  V P                  P                  R 4      '       d   K#  R# R# FN)rp   r,   ro   rq   r-   r   )r    nZresZsleepersr%   s   &&   r   notifyZCondition.notify  s     ''..&&..u5C lt33;;EBB  ((*MH8_!!))+ % &&..u55 6 r   c                sF    V P                  \        P                  R 7       R# ))ru   N)rv   r   Zmaxsizer.   r   r   
notify_allZCondition.notify_all6  s    ckk"r   c                s
   V! 4       pV'       d   V# Ve   \         P                  ! 4       V,           pMR pR pV'       gE   Ve'   V\         P                  ! 4       ,
          pV^ 8:  d    V# V P                  X4       V! 4       pKL  V# r   )timeZ	monotonicrs   )r    Z	predicaterr   ZresultZendtimeZwaittimes   &&&   r   wait_forZCondition.wait_for9  sw    Mnn&0GGH""T^^%55q=  IIh[Fr   )rn   ro   rq   rp   r,   r-   r   rX   )r@   rA   rB   rC   r'   r9   r<   r2   r4   r   rW   rs   rv   rw   ry   rE   rF   rG   rH   r   r   r      sB     9

&**S%.4# r   c                   sH   a  ] tR tRt o R tR tR tR tR
R ltR t	R	t
V tR# )r   iO  c               sz    VP                  VP                  4       4      V n        VP                  ^ 4      V n        R# rl   )r   r    _condr   _flagr]   r^   r   r'   ZEvent.__init__Q  s(    ]]388:.
]]1%
r   c                s    V P                   ;_uu_ 4        V P                  P                  R 4      '       d&   V P                  P                  4         RRR4       R#  RRR4       R #   + '       g   i     R# ; iFNT)rz   r{   r,   r-   r.   r   r   is_setZEvent.is_setU  sK    ZZZzz!!%((

""$ Z 	 ZZZs   =A'A''A8	c                s   V P                   ;_uu_ 4        V P                  P                  R 4       V P                  P                  4        V P                   P	                  4        RRR4       R#   + '       g   i     R# ; irt   )rz   r{   r,   r-   rw   r.   r   r   setZ	Event.set\  sI    ZZZJJu%JJ JJ!!# ZZZs   AA//B 	c                s    V P                   ;_uu_ 4        V P                  P                  R 4       RRR4       R#   + '       g   i     R# ; irt   )rz   r{   r,   r.   r   r   clearZEvent.clearb  s)    ZZZJJu% ZZZs	   ;A	Nc                s   V P                   ;_uu_ 4        V P                  P                  R 4      '       d   V P                  P                  4        MV P                   P	                  V4       V P                  P                  R 4      '       d&   V P                  P                  4         RRR4       R#  RRR4       R #   + '       g   i     R# ; ir|   )rz   r{   r,   r-   rs   )r    rr   r;   r   rs   Z
Event.waitf  s    ZZZzz!!%((

""$

(zz!!%((

""$ Z  ZZZs   A8B>B>3B>>C	c                s    V P                  4       '       d   R MRpR\        V 4      P                   R\        V 4      R RV R2# )r~   ZunsetrQ   z at z#xZ Z>)r}   ZtyperB   Zid)r    Z
set_statusr*   r   rW   ZEvent.__repr__r  s?    "kkmmU
4:**+44}Aj\KKr   )rz   r{   r   )r@   rA   rB   rC   r'   r}   r~   r   rs   rW   rE   rF   rG   rH   r   r   r   O  s*     &$&
L Lr   c                   s   a  ] tR tRt o RR ltR tR t]R 4       t]P                  R 4       t]R 4       t
]
P                  R	 4       t
R
tV tR# )Barrieriy  Nc               s    ^ RI p^RIHp V! VP                  R4      ^,          4      pVP	                  4       pV P                  WW8V34       ^ V n        ^ V n        R# )rm   N)BufferWrapperr%   )structZheapr   Zcalcsizer   r<   _staterg   )	r    ZpartiesZactionrr   r$   r   r   ZwrapperZconds	   &&&&$    r   r'   ZBarrier.__init__{  sN    ' 4q 89}}7G7CDr   c                s    Vw  V n         V n        V n        V n        V n        V P                  P                  4       P                  R 4      V n        R# )r%   N)_parties_action_timeoutrz   _wrapperZcreate_memoryviewZcast_arrayr:   r;   r   r<   ZBarrier.__setstate__  s>    &+	$dm	T]mm557<<SAr   c                st    V P                   V P                  V P                  V P                  V P                  3# r   )r   r   r   rz   r   r.   r   r   r9   ZBarrier.__getstate__  s,    t||T]]

DMM+ 	+r   c                s(    V P                   ^ ,          # )rm   r   r.   r   r   r   Barrier._state      {{1~r   c                s"    WP                   ^ &   R# rl   r   rV   r;   r   r   r         Ar   c                s(    V P                   ^,          # rX   r   r.   r   r   rg   Barrier._count  r   r   c                s"    WP                   ^&   R# )r(   Nr   rV   r;   r   rg   r     r   r   )r   r   rz   rg   r   r   r   r   )NN)r@   rA   rB   rC   r'   r<   r9   Zpropertyr   Zsetterrg   rE   rF   rG   rH   r   r   r   y  sm     B
+   ]]    ]] r   r   )r    r   r   r   r   r   zjThis platform lacks a functioning sem_open implementation. https://github.com/python/cpython/issues/48020.)Z__all__re   r   rD   r   rx   Z r   r   r   r	   r
   ZImportErrorrh   rK   rL   Zobjectr   r   r    r   r   r   r   r?   r   r   <module>r      s     
      Z4 	 ((66Q/f Q/nC C0Hy H"B7 B2GG G4i i^%LF %LT"i "}
  Z
 Y Z ZZs   B2 2C