Ë
    $´˜jE+  ã                   óì  — d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ g d¢Z e	ed«      Z
ej                  ej                  fZdd„ iZe j                  d	k(  rKd dlZd dlZ e	ed
«      rej%                  dej&                  i«       ej%                  dej(                  i«        G d„ de«      Z G d„ de«      Z e«       Zej4                  Zej6                  Zej8                  Zej:                  Zd„ Zy)é    Né   )Úspawn)Úutil)Úensure_runningÚregisterÚ
unregisterÚpthread_sigmaskÚnoopc                   ó   — y ©N© r   ó    úc/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/multiprocessing/resource_tracker.pyÚ<lambda>r   !   s   € �Dr   ÚposixÚ
sem_unlinkÚ	semaphoreÚshared_memoryc                   ó   — e Zd Zy)ÚReentrantCallErrorN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   6   s   „ Ør   r   c                   ó”   — e Zd Zd„ Zd„ Zd„ Zdd„Zej                  ej                  ej                  fd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zy)ÚResourceTrackerc                 óR   — t        j                  «       | _        d | _        d | _        y r   )Ú	threadingÚRLockÚ_lockÚ_fdÚ_pid©Úselfs    r   Ú__init__zResourceTracker.__init__<   s   € Ü—_‘_Ó&ˆŒ
ØˆŒØˆ�	r   c                 ó   — t        d«      ‚)Nz8Reentrant call into the multiprocessing resource tracker)r   r"   s    r   Ú_reentrant_call_errorz%ResourceTracker._reentrant_call_errorA   s   € ô
 !ØFóHð 	Hr   c                 ó(   — | j                  d¬«       y )NF)Úuse_blocking_lock)Ú_stopr"   s    r   Ú__del__zResourceTracker.__del__I   s   € ð 	�
‰
 Uˆ
Õ+r   c                 óD  — |r&| j                   5  | j                  «        d d d «       y | j                   j                  d¬«      }	 | j                  «        |r| j                   j                  «        y y # 1 sw Y   y xY w# |r| j                   j                  «        w w xY w)NF)Úblocking)r   Ú_stop_lockedÚacquireÚrelease)r#   r(   Úacquireds      r   r)   zResourceTracker._stopO   s„   € ÙØ—“Ø×!Ñ!Ô#÷ �ð —z‘z×)Ñ)°5Ð)Ó9ˆHð)Ø×!Ñ!Ô#áØ—J‘J×&Ñ&Õ(ð ÷ �ûñ Ø—J‘J×&Ñ&Õ(ð ús   �A4ÁB  Á4A=Â Bc                 óø   — | j                   j                  «       dkD  r| j                  «       S | j                  €y | j                  €y  || j                  «       d | _         || j                  d«       d | _        y )Nr   r   )r   Ú_recursion_countr&   r    r!   )r#   ÚcloseÚwaitpidÚwaitstatus_to_exitcodes       r   r-   zResourceTracker._stop_locked[   sk   € ð �:‰:×&Ñ&Ó(¨1Ò,Ø×-Ñ-Ó/Ð/Ø�8‰8ÐàØ�9‰9ÐØñ 	ˆd�h‰hŒØˆŒá�—	‘	˜1ÔØˆ�	r   c                 ó:   — | j                  «        | j                  S r   )r   r    r"   s    r   ÚgetfdzResourceTracker.getfdr   s   € Ø×ÑÔØ�x‰xˆr   c                 ó(  — | j                   5  | j                   j                  «       dkD  r| j                  «       cddd«       S | j                  �‰| j	                  «       r
	 ddd«       yt        j                  | j                  «       	 | j                  � t        j                  | j                  d«       d| _        d| _        t        j                  d«       g }	 |j                  t        j                  j                  «       «       d}t        j"                  «       \  }}	 |j                  |«       t%        j&                  «       }|gt)        j*                  «       z   }|d||z  gz  }d}	 t,        r(t/        j0                  t.        j2                  t4        «      }t)        j6                  |||«      }|�%t/        j0                  t.        j8                  |«       	 || _        || _        	 t        j                  |«       	 ddd«       y# t        $ r Y �Œ]w xY w# t         $ r Y �Œw xY w# |�%t/        j0                  t.        j8                  |«       w w xY w#  t        j                  |«       ‚ xY w# t        j                  |«       w xY w# 1 sw Y   yxY w)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   r2   r&   r    Ú_check_aliveÚosr3   r!   r4   ÚChildProcessErrorÚ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   zResourceTracker.ensure_runningv   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ˆqðØ×"Ñ" 1Ô%ä×*Ñ*Ó,�Ø�uœt×@Ñ@ÓBÑB�Ø˜˜s Q™w˜Ñ'�ð  $�ðQÝ$Ü'-×'=Ñ'=¼f×>NÑ>NÔP`Ó'a˜Ü×-Ñ-¨c°4¸ÓE�Cà#Ð/Ü×.Ñ.¬v×/AÑ/AÀ<ÕPð
 �”Ø�•	ä—‘˜•÷{ ˆZøô$ )ò âðûô ò Úðûð, $Ð/Ü×.Ñ.¬v×/AÑ/AÀ<ÕPð 0ûðÜ—‘˜”Øûô
 —‘˜•ú÷{ ˆZús£   �-JÁJÁ*JÂ
,HÂ6%JÃ-HÄ	JÄ#A	IÅ-AH'Æ2'IÇI.Ç(JÈ	HÈJÈHÈJÈ	H$È JÈ#H$È$JÈ')IÉIÉI+É+I.É.JÊJÊJc                 ód   — 	 t        j                  | j                  d«       y# t        $ r Y yw xY w)z;Check that the pipe has not been closed by sending a probe.s   PROBE:0:noop
TF)r:   Úwriter    ÚOSErrorr"   s    r   r9   zResourceTracker._check_aliveº   s5   € ð	ô �H‰H�T—X‘XÐ0Ô1ð øô ò 	Ùð	ús   ‚ # £	/®/c                 ó*   — | j                  d||«       y)z0Register name of resource with resource tracker.ÚREGISTERN©Ú_send©r#   ÚnameÚrtypes      r   r   zResourceTracker.registerÅ   s   € à�
‰
�:˜t UÕ+r   c                 ó*   — | j                  d||«       y)z2Unregister name of resource with resource tracker.Ú
UNREGISTERNrY   r[   s      r   r   zResourceTracker.unregisterÉ   s   € à�
‰
�<  uÕ-r   c                 óŽ  — 	 | j                  «        dj	                  |||«      j                  d«      }t        |«      dkD  rt        d«      ‚t        j                  | j                  |«      }|t        |«      k(  s J dj	                  |t        |«      «      «       ‚y # t        $ r t        j                  d|› d|›d�«       Y Œ±w xY w)	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   r<   r=   ÚformatÚencodeÚlenÚ
ValueErrorr:   rU   r    )r#   rM   r\   r]   ÚmsgÚnbytess         r   rZ   z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N)T)r   r   r   r$   r&   r*   r)   r:   r3   r4   r5   r-   r7   r   r9   r   r   rZ   r   r   r   r   r   :   sU   „ òò
Hò,ó
)ð �h‰hØ—
‘
Ø!×8Ñ8ó	ò.òBòH	ò,ò.ór   r   c                 óž  — t        j                   t         j                  t         j                  «       t        j                   t         j                  t         j                  «       t        r(t        j
                  t         j                  t        «       t        j                  t        j                  fD ]  }	 |j                  «        Œ t        j                  «       D �ci c]  }|t        «       “Œ }}	 t!        | d«      5 }|D ]¦  }	 |j#                  «       j%                  d«      j'                  d«      \  }}}t        j)                  |d«      }|€t+        d|› d|› �«      ‚|dk(  r||   j-                  |«       n.|dk(  r||   j/                  |«       n|d	k(  rnt1        d
|z  «      ‚Œ¨ 	 ddd«       |j7                  «       D ]B  \  }}|r$	 t9        j:                  dt=        |«      |fz  «       |D ]  }	 	 t        |   |«       Œ ŒD y# t        $ r Y �Œdw xY wc c}w # t        $ r1 	 t        j2                  t        j4                  «       Ž  n#  Y nxY wY �ŒVw xY w# 1 sw Y   Œ±xY w# t        $ r Y Œƒw xY w# t        $ r%}	t9        j:                  d|›d|	›�«       Y d}	~	Œ›d}	~	ww xY w# w xY w# |j7                  «       D ]‰  \  }}|r4	 t9        j:                  dt=        |«      |fz  «       n# t        $ r Y nw xY w|D ]I  }	 	 t        |   |«       n1# t        $ r%}	t9        j:                  d|›d|	›�«       Y d}	~	nd}	~	ww xY wŒF# w xY w Œ‹ w xY w)zRun resource tracker.Úrbra   Ú:NzCannot register z. for automatic cleanup: unknown resource type rX   r_   ÚPROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: z: )rG   ÚSIGINTÚSIG_IGNÚSIGTERMrF   r	   ÚSIG_UNBLOCKrI   r?   ÚstdinÚstdoutr3   rB   Ú_CLEANUP_FUNCSÚkeysÚsetÚopenÚstripÚdecodeÚsplitÚgetre   ÚaddÚremoveÚRuntimeErrorÚ
excepthookÚexc_infoÚitemsr<   r=   rd   )
ÚfdÚfr]   ÚcacheÚlinerM   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ˆU”C“E‰\Ð'<€EÐ=ð-ä�"�dŒ^˜qÛ�ðØ'+§z¡z£|×':Ñ':¸7Ó'C×'IÑ'IÈ#Ó'NÑ$�C˜˜uÜ#1×#5Ñ#5°e¸TÓ#B�LØ#Ð+Ü(Ø.¨t¨fð 55Ø5:°Gð=ó>ð >ð ˜jÒ(Ø˜e™×(Ñ(¨Õ.Ø Ò,Ø˜e™×+Ñ+¨DÕ1Ø šØä*Ð+DÀsÑ+JÓKÐKøñ! ÷ ð2 #(§+¡+¦-ÑˆE�;ÙðÜ—M‘Mð #Nä#& {Ó#3°UÐ";ñ#<ô =ó
 $�ððNÜ& uÑ-¨dÔ3ð ñ $ñ #0øô? ò 	Úð	üò >øô* !ò ðÜŸ™¬¯©«Ò7øðÙýð	ú÷% ˆ^ûô> !ò Ùðûô %ò NÜ ŸšÂDÉ!Ð&L×MÑMûðNûð ûð% #(§+¡+¦-ÑˆE�;ÙðÜ—M‘Mð #Nä#& {Ó#3°UÐ";ñ#<õ =øô !ò Ùðúã#�ððNÜ& uÑ-¨dÕ3øÜ$ò NÜ ŸšÂDÉ!Ð&L×MÑMûðNúð ø�Dúñ $ñ #0ús  Â7HÃHÃ4J. Ä IÄB#H Æ*IÆ-J. Ç#I)Ç8I8È	HÈHÈ 	IÈ*$IÉIÉI	ÉIÉIÉIÉIÉI&É"J. É)	I5É4I5É8	J&ÊJ!ÊJ)Ê!J&Ê&J)Ê)J+Ê.MË#K,Ë+MË,	K8	Ë5MË7K8	Ë8MÌLÌMÌ	L?ÌL:Ì5MÌ:L?Ì?MÍMÍMÍM)r:   rG   r?   r   r<   Ú r   r   Ú__all__ÚhasattrrF   rl   rn   rI   rr   r\   Ú_multiprocessingÚ_posixshmemÚupdater   Ú
shm_unlinkr|   r   Úobjectr   Ú_resource_trackerr   r   r   r7   r‡   r   r   r   Ú<module>r‘      s  ðó$ 
Û Û 
Û Û å Ý â
6€á˜Ð 1Ó2€Ø—M‘M 6§>¡>Ð2Ð ð ‰Lð€ð ‡7�7ˆgÒÛÛñ Ð Ô.Ø×ÑØÐ)×4Ñ4ð
ô 	ð ×ÑØ˜×/Ñ/ðô ô
	˜ô 	ôf�fô fñR $Ó%Ð Ø"×1Ñ1€Ø×%Ñ%€Ø×)Ñ)€
Ø×Ñ€ó<r   