ó
    F\hÞ.  ã                   ó   • S SK r S SKrS SKrS SKrS SKrSSKJr  SSKJr  / SQr\	" \S5      r
\R                  \R                  4rS r\S S	.r\ R                   S
:X  aP  S SKrS SKr\	" \S5      (       a  \R'                  S\R(                  05        \R'                  S\R*                  05         " S S\5      r " S S\5      r\" 5       r\R6                  r\R8                  r\R:                  r\R<                  rS rg)é    Né   )Úspawn)Úutil)Úensure_runningÚregisterÚ
unregisterÚpthread_sigmaskc                 ó   • [        S5      e)Nz-noop should never be registered or cleaned up)ÚRuntimeError©Únames    Ú7/usr/lib/python3.13/multiprocessing/resource_tracker.pyÚcleanup_noopr       s   € Ü
ÐFÓ
GÐGó    c                 ó   • g ©N© r   s    r   Ú<lambda>r   %   s   € ˜$r   )ÚnoopÚdummyÚposixÚ
sem_unlinkÚ	semaphoreÚshared_memoryc                   ó   • \ rS rSrSrg)ÚReentrantCallErroré:   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   r   r   r   r   :   s   † Úr   r   c                   ó    • \ rS rSrS rS rS rSS jr\R                  \R                  \R                  4S jrS rS rS	 rS
 rS rS rSrg)ÚResourceTrackeré>   c                 ób   • [         R                  " 5       U l        S U l        S U l        S U l        g r   )Ú	threadingÚRLockÚ_lockÚ_fdÚ_pidÚ	_exitcode©Úselfs    r   Ú__init__ÚResourceTracker.__init__@   s%   € Ü—_’_Ó&ˆŒ
ØˆŒØˆŒ	Øˆ�r   c                 ó   • [        S5      e)Nz8Reentrant call into the multiprocessing resource tracker)r   r-   s    r   Ú_reentrant_call_errorÚ%ResourceTracker._reentrant_call_errorF   s   € ô
 !ØFóHð 	Hr   c                 ó"   • U R                  SS9  g )NF)Úuse_blocking_lock)Ú_stopr-   s    r   Ú__del__ÚResourceTracker.__del__N   s   € ð 	�
‰
 Uˆ
Ò+r   c                 óf  • U(       a&  U R                      U R                  5         S S S 5        g U R                   R                  SS9n U R                  5         U(       a  U R                   R                  5         g g ! , (       d  f       g = f! U(       a  U R                   R                  5         f f = f)NF)Úblocking)r)   Ú_stop_lockedÚacquireÚrelease)r.   r5   Úacquireds      r   r6   ÚResourceTracker._stopT   s„   € ÞØ—“Ø×!Ñ!Ô#÷ �ð —z‘z×)Ñ)°5Ð)Ð9ˆHð)Ø×!Ñ!Ô#æØ—J‘J×&Ñ&Õ(ð ÷ •ûö Ø—J‘J×&Ñ&Õ(ð ús   ”A;ÁB Á;
B	Â$B0c                 óL  • U R                   R                  5       S:”  a  U R                  5       $ U R                  c  g U R                  c  g U" U R                  5        S U l        U" U R                  S5      u  pES U l         U" U5      U l        g ! [         a
    S U l         g f = f)Nr   r   )r)   Ú_recursion_countr2   r*   r+   r,   Ú
ValueError)r.   ÚcloseÚwaitpidÚwaitstatus_to_exitcodeÚ_Ústatuss         r   r;   ÚResourceTracker._stop_locked`   s–   € ð �:‰:×&Ñ&Ó(¨1Ó,Ø×-Ñ-Ó/Ð/Ø�8‰8ÑàØ�9‰9ÑØñ 	ˆd�h‰hŒØˆŒá˜DŸI™I qÓ)‰	ˆàˆŒ	ð	"Ù3°FÓ;ˆD�NøÜó 	"à!ˆDŽNð	"ús   ÂB ÂB#Â"B#c                 ó:   • U R                  5         U R                  $ r   )r   r*   r-   s    r   ÚgetfdÚResourceTracker.getfd~   s   € Ø×ÑÔØ�x‰xˆr   c                 óp  • U R                      U R                   R                  5       S:”  a  U R                  5       sSSS5        $ U R                  b™  U R	                  5       (       a
   SSS5        g[
        R                  " U R                  5         U R                  b!  [
        R                  " U R                  S5        SU l        SU l        SU l
        [        R                  " S5        / n UR                  [        R                  R!                  5       5        Sn[
        R$                  " 5       u  p4 UR                  U5        [&        R(                  " 5       nU/[*        R,                  " 5       -   nUSX#-  /-  nSn [.        (       a)  [0        R2                  " [0        R4                  [6        5      n[*        R8                  " XVU5      nUb%  [0        R2                  " [0        R:                  U5        X@l        X€l         [
        R                  " U5         SSS5        g! [         a     GNmf = f! ["         a     GN#f = f! Ub&  [0        R2                  " [0        R:                  U5        f f = f!   [
        R                  " U5        e = f! [
        R                  " U5        f = f! , (       d  f       g= f)zœMake sure that resource tracker process is running.

This can be run from any process.  Usually a child process will use
the resource created by its parent.r   Nr   zUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)r)   rA   r2   r*   Ú_check_aliveÚosrC   r+   rD   ÚChildProcessErrorr,   ÚwarningsÚwarnÚappendÚsysÚstderrÚfilenoÚ	ExceptionÚpiper   Úget_executabler   Ú_args_from_interpreter_flagsÚ_HAVE_SIGMASKÚsignalr	   Ú	SIG_BLOCKÚ_IGNORED_SIGNALSÚspawnv_passfdsÚSIG_SETMASK)	r.   Úfds_to_passÚcmdÚrÚwÚexeÚargsÚprev_sigmaskÚpids	            r   r   ÚResourceTracker.ensure_running‚   s'  € ð
 �Z‹ZØ�z‰z×*Ñ*Ó,¨qÓ0à×1Ñ1Ó3÷ ‰Zð �x‰xÑ#à×$Ñ$×&Ñ&à÷ ˆZô —’˜Ÿ™Ô"ðð —y‘yÑ,ÜŸ
š
 4§9¡9¨aÔ0ð  �”Ø �”	Ø!%�”ä—’ð Iô Jð ˆKðØ×"Ñ"¤3§:¡:×#4Ñ#4Ó#6Ô7ð OˆCÜ—7’7“9‰DˆAðØ×"Ñ" 1Ô%ä×*Ò*Ó,�Ø�uœt×@Ò@ÓBÑB�Ø˜˜s™w˜Ñ'�ð  $�ðQß$’}Ü'-×'=Ò'=¼f×>NÑ>NÔP`Ó'a˜Ü×-Ò-¨c¸ÓE�Cà#Ñ/Ü×.Ò.¬v×/AÑ/AÀ<ÔPð
 ”Ø•	ä—’˜•÷} ˆZøô$ )ó âðûô ó Úðûð, $Ñ/Ü×.Ò.¬v×/AÑ/AÀ<ÕPð 0ûðÜ—’˜”Øûô
 —’˜•ú÷} �Zús£   �.J'Á#J'Á1 J'Â.H Ã -J'Ã.-H1ÄJ'Ä5A
I0Æ AIÇ(I0Ç3JÈ J'È 
H.È*J'È-H.È.J'È1
H?È;J'È>H?È?J'É+I-É-I0É0J	Ê	JÊJ$Ê$J'Ê'
J5c                 óh   •  [         R                  " U R                  S5        g! [         a     gf = f)z;Check that the pipe has not been closed by sending a probe.s   PROBE:0:noop
TF)rN   Úwriter*   ÚOSErrorr-   s    r   rM   ÚResourceTracker._check_aliveÇ   s5   € ð	ô �HŠH�T—X‘XÐ0Ô1ð øô ó 	Ùð	ús   ‚!$ ¤
1°1c                 ó(   • U R                  SX5        g)z0Register name of resource with resource tracker.ÚREGISTERN©Ú_send©r.   r   Úrtypes      r   r   ÚResourceTracker.registerÒ   s   € à�
‰
�:˜tÕ+r   c                 ó(   • U R                  SX5        g)z2Unregister name of resource with resource tracker.Ú
UNREGISTERNro   rq   s      r   r   ÚResourceTracker.unregisterÖ   s   € à�
‰
�< Õ-r   c                 ó˜  •  U R                  5         SR	                  XU5      R                  S5      n[        U5      S:”  a  [        S5      e[        R                  " U R                  U5      nU[        U5      :X  d    SR	                  U[        U5      5      5       eg ! [         a!    [        R                  " SU SU< S35         N¶f = f)	NzSResourceTracker called reentrantly for resource cleanup, which is unsupported. The z object z might leak.z{0}:{1}:{2}
Úasciii   zmsg too longznbytes {0:n} but len(msg) {1:n})r   r   rP   rQ   ÚformatÚencodeÚlenrB   rN   rj   r*   )r.   ra   r   rr   ÚmsgÚnbytess         r   rp   ÚResourceTracker._sendÚ   sÄ   € ð
	<Ø×ÑÔ!ð ×$Ñ$ S°Ó6×=Ñ=¸gÓFˆÜˆs‹8�c‹>ô ˜^Ó,Ð,Ü—’˜$Ÿ(™( CÓ(ˆØœ˜S›Ó!ð 	Ð#D×#KÑ#KØ”C˜“Hó$ó 	Ñ!øô "ó 	<ô
 �MŠMðà�g˜X d¡X¨\ð;ö<ð	<ús   ‚B Â(C	ÃC	)r,   r*   r)   r+   N)T)r   r   r    r!   r/   r2   r7   r6   rN   rC   rD   rE   r;   rJ   r   rM   r   r   rp   r"   r   r   r   r$   r$   >   sU   † òòHò,ô
)ð �h‰hØ—
‘
Ø!×8Ñ8ô	"ò<òCòJ	ò,ò.õr   r$   c                 ó°  • [         R                   " [         R                  [         R                  5        [         R                   " [         R                  [         R                  5        [        (       a)  [         R
                  " [         R                  [        5        [        R                  [        R                  4 H  n UR                  5         M     [        R                  5        Vs0 s H  o"[        5       _M     nnSn [!        U S5       nU H©  n UR#                  5       R%                  S5      R'                  S5      u  pgn[        R)                  US5      nUc  [+        SU SU 35      eUS:X  a  X2   R-                  U5        Mz  US	:X  a  X2   R/                  U5        M•  US
:X  a  M�  [1        SU-  5      e   SSS5        UR7                  5        HY  u  p)U	(       a3   SnUS:X  a  O)[8        R:                  " S[=        U	5       SU SU	 35         U	 H  n  [        U   " U5        M     M[     [        R>                  " U5        g! [         a     GM�  f = fs  snf ! [         a8    Sn [        R2                  " [        R4                  " 5       6    GM‡  !     GMŽ  = ff = f! , (       d  f       Nî= f! [         a     N®f = f! [         a*  n
Sn[8        R:                  " SU< SU
< 35         Sn
A
NËSn
A
ff = f! f = f! UR7                  5        H¦  u  p)U	(       aC   SnUS:X  a  O9[8        R:                  " S[=        U	5       SU SU	 35        O! [         a     Of = fU	 HQ  n  [        U   " U5        O7! [         a*  n
Sn[8        R:                  " SU< SU
< 35         Sn
A
OSn
A
ff = fMN  ! f = f   M¨     [        R>                  " U5        f = f)zRun resource tracker.r   Úrbrx   Ú:NzCannot register z. for automatic cleanup: unknown resource type rn   ru   ÚPROBEzunrecognized command %ré   r   r   z%resource_tracker: There appear to be z leaked z" objects to clean up at shutdown: é   zresource_tracker: z: ) r[   ÚSIGINTÚSIG_IGNÚSIGTERMrZ   r	   ÚSIG_UNBLOCKr]   rS   ÚstdinÚstdoutrC   rV   Ú_CLEANUP_FUNCSÚkeysÚsetÚopenÚstripÚdecodeÚsplitÚgetrB   ÚaddÚremover   Ú
excepthookÚexc_infoÚitemsrP   rQ   r{   Úexit)ÚfdÚfrr   ÚcacheÚ	exit_codeÚlinera   r   Úcleanup_funcÚrtype_cacheÚes              r   Úmainr¡   ÷   s{  € ô ‡M‚M”&—-‘-¤§¡Ô0Ü
‡M‚M”&—.‘.¤&§.¡.Ô1ß‚}Ü×Òœv×1Ñ1Ô3CÔDä�i‰iœŸ™Ó$ˆð	Ø�G‰GŽIñ %ô (6×':Ñ':Ô'<Ó=Ò'<˜e”C“EŠ\Ñ'<€EÐ=Ø€Ið9ä�"�dŒ^˜qÛ�ðØ'+§z¡z£|×':Ñ':¸7Ó'C×'IÑ'IÈ#Ó'NÑ$�C˜uÜ#1×#5Ñ#5°e¸TÓ#B�LØ#Ñ+Ü(Ø.¨t¨fð 55Ø5:°Gð=ó>ð >ð ˜jÓ(Ø™×(Ñ(¨Ö.Ø Ó,Ø™×+Ñ+¨DÖ1Ø ›Ùä*Ð+DÀsÑ+JÓKÐKñ! ÷ ð4 #(§+¡+¦-ÑˆEÞðØ !�IØ Ó'ð ä ŸšØCÜ" ;Ó/Ð0°¸¸ð @5Ø5@°MðCõó $�ððNÜ& uÒ-¨dÔ3ñ
 ó $ñ! #0ô: 	�Š�Õøô ó 	Ûð	üò >øô. !ó Ø !�IðÜŸš¬¯ª«Õ7øðÜúðú÷% �^ûôP !ó Ùðûô %ó NØ$%˜	Ü Ÿ›ÃDÊ!Ð&L×MÑMûðNûð ûð7 #(§+¡+¦-ÑˆEÞðØ !�IØ Ó'ð ä ŸšØCÜ" ;Ó/Ð0°¸¸ð @5Ø5@°MðCõøô
 !ó Ùðúã#�ððNÜ& uÒ-¨dÕ3øÜ$ó NØ$%˜	Ü Ÿ›ÃDÊ!Ð&L×MÑMûðNúñ ø�Dúó $ñ! #0ô: 	�Š�ÕúsK  Â?I
Ã)IÄL ÄJ&ÄA4I!Æ	J&ÆI!Æ$J&Æ&I!Æ,J&Æ.I!Æ<J&Æ>L Ç#J7Ç,(J7ÈKÉ

IÉIÉ!J#É.&JÊJ&ÊJ	ÊJ#ÊJ&ÊJ#Ê#J&Ê&
J4Ê0L Ê7
KËKË
K;Ë K6Ë1K>Ë6K;Ë;K>Ë>L ÌOÌ!MÌ)OÌ*(MÍOÍ
M 	ÍOÍM 	Í OÍ*M:Í9N3Í:
N.Î N)Î$N3Î)N.Î.N3Î1OÎ3N5Î5 O) rN   r[   rS   r'   rP   Ú r   r   Ú__all__ÚhasattrrZ   r…   r‡   r]   r   r‹   r   Ú_multiprocessingÚ_posixshmemÚupdater   Ú
shm_unlinkr   r   Úobjectr$   Ú_resource_trackerr   r   r   rJ   r¡   r   r   r   Ú<module>r«      s  ðó$ 
Û Û 
Û Û å Ý â
6€á˜Ð 1Ó2€Ø—M‘M 6§>¡>Ð2Ð òHð Ùñ€ð
 ‡7�7ˆgÓÛÛñ Ð ×.Ñ.Ø×ÑØÐ)×4Ñ4ð
ô 	ð ×ÑØ˜×/Ñ/ðô ô
	˜ô 	ôo�fô oñd $Ó%Ð Ø"×1Ñ1€Ø×%Ñ%€Ø×)Ñ)€
Ø×Ñ€óJr   