+
    iY;  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^RI	H
t
 ^RI	Ht . ROt]! ]R4      t]P                  ]P                   3tR tR]RR	 /t]P(                  R
8X  d6   ^ RIt^ RIt]! ]R4      '       d   ]P.                  ]R&   ]P0                  ]R&    ! R R]4      t ! R R]4      t]! 4       t]P<                  t]P>                  t]P@                  t ]PB                  t!R t"R t#R# )    N)deque)spawn)utilpthread_sigmaskc                     \        R 4      h)z-noop should never be registered or cleaned up)RuntimeErrorname   &9/usr/lib64/python3.14/multiprocessing/resource_tracker.pycleanup_noopr   $   s    
F
GG    noopdummyc                 s    R # N r   r	   r
   <lambda>r   )   s    $r   Zposix
sem_unlinkZ	semaphoreZshared_memoryc                   s    ] tR t^:tRtR# )ReentrantCallErrorr   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r
   r   r   :   s    r   r   c                   s   a  ] tR t^>t o R tR tR tRR lt]P                  ]P                  ]P                  3R ltR tR tR tR	 tR
 tRR ltR tR tR tR tR tRtV tR# )ResourceTrackerc                s    \         P                  ! 4       V n        R V n        R V n        R V n        \        4       V n        RV n        R # )NT)		threadingZRLock_lock_fd_pid	_exitcoder   _reentrant_messages_use_simple_formatselfr	   r
   __init__ZResourceTracker.__init__@   s9    __&
	#(7  #'r   c                r   )z8Reentrant call into the multiprocessing resource tracker)r   r!   r	   r
   _reentrant_call_errorZ%ResourceTracker._reentrant_call_errorN   s    
 !FH 	Hr   c                s*    V P                  R R7       R# )F)use_blocking_lockN)_stopr!   r	   r
   __del__ZResourceTracker.__del__V   s     	

U
+r   c                s   V'       d0   V P                   ;_uu_ 4        V P                  4        R R R 4       R # V P                   P                  RR7      p V P                  4        V'       d   V P                   P                  4        R # R #   + '       g   i     R # ; i  T'       d   T P                   P                  4        i i ; i)NF)Zblocking)r   _stop_lockedZacquireZrelease)r"   r%   Zacquired   && r
   r&   ZResourceTracker._stop\   s    !!#  zz))5)9H)!!#JJ&&(   JJ&&( s   BB B	%Cc                s   V P                   P                  4       ^8  d   V P                  4       hV P                  f   R# V P                  f   R# V! V P                  4       RV n         V! V P                  ^ 4      w  rERT n         T! T4      T n        R#   \
         d    RT n        RT n         R# i ; i  \         d    RT n         R# i ; ii   N)r   _recursion_countr$   r   r   ChildProcessErrorr   
ValueError)r"   closewaitpidwaitstatus_to_exitcodeZ_Zstatuss   &&&&  r
   r(   ZResourceTracker._stop_lockedh   s     ::&&(1,,,..8899 	dhh			1-IA 		"3F;DN ! 	DI!DN	  	"!DN	"s$   *B B6 B32B36CCc                s:    V P                  4        V P                  # r   )ensure_runningr   r!   r	   r
   getfdZResourceTracker.getfd   s    xxr   c                s"    V P                  4       # r   )_ensure_running_and_writer!   r	   r
   r1   ZResourceTracker.ensure_running   s    
 --//r   c                s   \         P                  ! V P                  4        V P                  e"   \         P                  ! V P                  ^ 4       R T n        R T n        R T n        \        P                  ! R4       R #   \
         d     L:i ; i)NzUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.)	osr.   r   r   r/   r,   r   warningswarnr!   r	   r
   _teardown_dead_processZ&ResourceTracker._teardown_dead_process   ss    
	 yy$

499a( 	 A 	B ! 		s   /A> >BBc                sH   . p VP                  \        P                  P                  4       4       \
        P                  ! 4       w  r# VP                  V4       \        P                  ! 4       pV.\        P                  ! 4       OR NRV R2NpRp \        '       d*   \        P                  ! \        P                  \        4      p\        P                   ! WEV4      pVe&   \        P                  ! \        P"                  V4       Y0n        Ypn         \
        P(                  ! T4       R#   \         d     EL	i ; i  Te'   \        P                  ! \        P"                  T4       i i ; i   \
        P(                  ! T4       h ; i  \
        P(                  ! T4       i ; i)z-cz7from multiprocessing.resource_tracker import main;main(Z)N)appendsysZstderrZfileno	Exceptionr4   Zpiper   Zget_executabler   Z_args_from_interpreter_flags_HAVE_SIGMASKsignalr   Z	SIG_BLOCK_IGNORED_SIGNALSZspawnv_passfdsZSIG_SETMASKr   r   r.   )r"   Zfds_to_passZrZwZexeZargsZprev_sigmaskZpid   &       r
   _launchZResourceTracker._launch   s[   	szz0023 wwy	q!&&(C224  J!AN	D  LM =#)#9#9&:J:JL\#]L))#[A+**6+=+=|L
 HIHHQKE  		2  +**6+=+=|L ,	HHQK
 HHQKsI   -D, 	AE- AD> )E- F	 ,D;:D;>,E**E- -FF	 	F!c                s    V P                   '       d   R # \        P                  ! RRRR/RR	R7      R,           P                  R4      # )
s   PROBE:0:noop
cmdPROBErtyper   TZensure_asciiZ
separators
asciiZ,:)r    jsondumpsencoder!   r	   r
   _make_probe_messageZ#ResourceTracker._make_probe_message   sI    """$JJ&1!%
  &/	r   Nc                s   V P                   ;_uu_ 4        V P                   P                  4       ^8  d:   Vf   V P                  4       hV P                  P	                  V4      uuRRR4       # V P
                  e-   Vf   V P                  4       pMTp V P                  V4       RpMV P                  4        RRR4         V P                  P                  4       pT P                  T4       K/    \         d$    T P                  4        T P                  4         Lwi ; i  + '       g   i     Lp; i  \         d     Mi ; iTe   T P                  T4       R# R# r*   )r   r+   r$   r   r8   r   rK   _writeOSErrorr7   r?   ZpopleftZ
IndexError)r"   msgZto_sendZreentrant_msgs   &&  r
   r3   Z)ResourceTracker._ensure_running_and_write   s   ZZZzz**,q0;4466//66s; Z xx#;"668G!G#KK(
 + .  $ 8 8 @ @ B KK&  #//1LLN# Z4   ?KK sH   AD .%D C/%D D3 /+DD DD  D0	3E Ec                s     \         P                  ! V P                  V P                  4       4       R #   \         d     R# i ; i)TF)r4   writer   rK   rM   r!   r	   r
   _check_aliveZResourceTracker._check_alive   s=    	 HHTXXt779:   		s   /3 AAc                *    V P                  R W4       R# )REGISTERN_sendr"   r   rB      &&&r
   registerZResourceTracker.register
  s    

:t+r   c                rQ   )
UNREGISTERNrS   rU   rV   r
   
unregisterZResourceTracker.unregister  s    

<-r   c                sH    \         P                  ! V P                  V4      pR # r   )r4   rO   r   )r"   rN   Znbytesr)   r
   rL   ZResourceTracker._write  s    $((C(r   c                s   V P                   '       dP   R V9  dI   V RV RV R 2P                  R4      p\        V4      R8  d   \        R4      hV P	                  V4       R# VP                  RR4      p\        V4      ^8  d   \        R4      h\
        P                  ! V4      P                  R4      pR	VR
VRV/p\        P                  ! VRRR7      R ,           P                  R4      pV P	                  V4       R# )rD   rG   rE   i   zmsg too longNutf-8surrogateescapez+shared memory name too long (max 255 bytes)r@   rB   base64_nameTrC   rF   )
r    rJ   lenr-   r3   base64Zurlsafe_b64encodedecoderH   rI   )r"   r@   r   rB   rN   Zbb64Zpayloads   &&&&    r
   rT   ZResourceTracker._send  s    """t4'7E4&%+227;C3x#~ !00**3/ KK!23q6C<JKK&&q)009#w}cBzz'LtS[[\cd 	&&s+r   )r   r   r   r   r   r    )Tr   )r   r   r   r   r#   r$   r'   r&   r4   r.   r/   r0   r(   r2   r1   r7   r?   rK   r3   rP   rW   rY   rL   rT   r   Z__classdictcell__)Z__classdict__s   @r
   r   r   >   sx     'H,
) hh

!88	!"F0B&&PB	,.?, ,r   r   c                 s   V P                  R 4      '       d    \        P                  ! V P                  R4      4      pTR,          pTR,          pTP                  RR4      p\        T\        4      '       d-   \        T\        4      '       d   \        T\        4      '       g   \        RT: 24      h \        P                  ! T4      P                  R	R
4      pMGV P                  4       P                  R4      P                  R^R7      w  r7VP                  R^R7      w  rdW4V3#   \         d   p\        RT : 24      ThRp?ii ; i  \
         d   p\        RT: 24      ThRp?ii ; i)s   {rE   z$malformed resource_tracker message: Nr@   rB   r\    z#malformed resource_tracker fields: rZ   r[   z(malformed resource_tracker base64_name: rG   )Zmaxsplit)Z
startswithrH   Zloadsr_   r:   r-   getZ
isinstanceZstrr^   Zurlsafe_b64decodeZstripZsplitZrsplit)lineZobjer@   rB   r`   r   Zrestr>   r
   _decode_messagere   >  s=   t	X**T[[12C %jGww}b)#s##:eS+A+ATWY\I]I]MNN	[++C077ARSD JJL''066sQ6G	kk#k2t#  	XOPVWW	X  	[SRSYZZ	[s/   %D& 4&E	 &E1EE	E)E$$E)c                 s   \         P                   ! \         P                  \         P                  4       \         P                   ! \         P                  \         P                  4       \        '       d*   \         P
                  ! \         P                  \        4       \        P                  \        P                  3 F  p VP                  4        K  	  \        P                  4        Uu/ uF  q"\        4       bK  	  pp^ p \!        V R4      ;_uu_ 4       pV F  p \#        V4      w  rbp\        P%                  VR4      pVf   \'        RV RV 24      hVR8X  d   W2,          P)                  V4       K]  VR8X  d   W2,          P+                  V4       K}  VR8X  d   K  \-        RV,          4      h	  RRR4       VP3                  4        F_  w  r)V	'       d5    ^pVR	8X  d   M)\4        P6                  ! R
\9        V	4       RV RV	 24        V	 F  p  \        V,          ! V4       K  	  Ka  	  \        P:                  ! V4       R#   \         d     EK  i ; iu upi   \         d:    ^p \        P.                  ! \        P0                  ! 4       !    EK~       EK  ; ii ; i  + '       g   i     L; i  \         d     Li ; i  \         d+   p
^p\4        P6                  ! RT: RT
: 24        Rp
?
LRp
?
ii ; i  i ; i  TP3                  4        F  w  r)T	'       dF    ^pTR	8X  d   M:\4        P6                  ! R
\9        T	4       RT RT	 24       M  \         d     Mi ; iT	 FV  p  \        T,          ! T4       M8  \         d+   p
^p\4        P6                  ! RT: RT
: 24        Rp
?
MRp
?
ii ; iKS    i ; i	  K  	  \        P:                  ! T4       i ; i)r    ZrbNzCannot register z. for automatic cleanup: unknown resource type rR   rX   rA   zunrecognized command %rr   z%resource_tracker: There appear to be z leaked z" objects to clean up at shutdown: zresource_tracker: z: )r<   SIGINTZSIG_IGNSIGTERMr;   r   ZSIG_UNBLOCKr=   r9   ZstdinZstdoutr.   r:   _CLEANUP_FUNCSZkeysZsetZopenre   rb   r-   ZaddZremover   Z
excepthookZexc_infoZitemsr5   r6   r]   Zexit)ZfdZfrB   ZcacheZ	exit_coderc   r@   r   Zcleanup_funcZrtype_cacherd   s   &          r
   mainri   V  sf    MM&--0
MM&..&..1}v113CDii$	GGI % (6':':'<='<eCE\'<E=I9"d^^q'6t'<$C#1#5#5eT#BL#+(.tf 555:G=> > j(((.,++D1*+Ds+JKK!  4 #(++-E !I'  C";/0 @55@MC $N&u-d3
  $! #0: 	  		 >. !  !I7% ^P !  % N$%	 D!&LMMN 7 #(++-E !I'  C";/0 @55@MC
 ! #N&u-d3$ N$%	 D!&LMMN D $! #0: 	sK   I*IL J%AI4J%6IJ%IJ%I1J%3L 	J8#(J8K	IIJ"	,'JJ%JJ"	J%J"	"J%%J5	0L 8KK	K> K94L9K>>LLO %	M.O /(MO M&	#O %M&	&O 0NN>N9 N4/N>4N99N><O >O   O )r1   rW   rY   )$r^   r4   r<   r9   r   r5   Zcollectionsr   rH   ra   r   r   Z__all__Zhasattrr;   rf   rg   r=   r   rh   r   Z_multiprocessingZ_posixshmemr   Z
shm_unlinkr   r   Zobjectr   Z_resource_trackerr1   rW   rY   r2   re   ri   r   r   r
   <module>rj      s  $  	  
      
6 12MM6>>2 H L
 77g ..&6&A&A{#&1&<&<N?#	 	w,f w,r $% "11%%))
0Jr   