ზ3በંવવხްុլRxስសلçໂH℅૩/opt/alt/python312/lib64/python3.12/multiprocessing/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/multiprocessing/__pycache__/resource_tracker.cpython-312.pyc
�

��hE+����ddlZddlZddlZddlZddlZddlmZddlmZgd�Ze	ed�Z
ejejfZ
dd�iZejd	k(rKddlZddlZe	ed
�rej%dej&i�ej%dej(i�Gd
�de�ZGd�de�Ze�Zej4Zej6Zej8Zej:Zd�Zy)�N�)�spawn)�util)�ensure_running�register�
unregister�pthread_sigmask�noopc��y�N�r
��G/opt/alt/python312/lib64/python3.12/multiprocessing/resource_tracker.py�<lambda>r!s��Dr�posix�
sem_unlink�	semaphore�
shared_memoryc��eZdZy)�ReentrantCallErrorN)�__name__�
__module__�__qualname__r
rrrr6s��rrc��eZdZd�Zd�Zd�Zd
d�Zejejejfd�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zy)�ResourceTrackerc�R�tj�|_d|_d|_yr)�	threading�RLock�_lock�_fd�_pid��selfs r�__init__zResourceTracker.__init__<s���_�_�&��
������	rc��td��)Nz8Reentrant call into the multiprocessing resource tracker)rr"s r�_reentrant_call_errorz%ResourceTracker._reentrant_call_errorAs��
!�F�H�	Hrc�(�|jd��y)NF)�use_blocking_lock)�_stopr"s r�__del__zResourceTracker.__del__Is��	
�
�
�U�
�+rc�D�|r&|j5|j�ddd�y|jjd��}	|j�|r|jj�yy#1swYyxYw#|r|jj�wwxYw)NF)�blocking)r�_stop_locked�acquire�release)r#r(�acquireds   rr)zResourceTracker._stopOs��������!�!�#����z�z�)�)�5�)�9�H�
)��!�!�#���J�J�&�&�(�������J�J�&�&�(��s�A4�B�4A=�Bc��|jj�dkDr|j�S|j�y|j�y||j�d|_||jd�d|_y)Nrr)r�_recursion_countr&r r!)r#�close�waitpid�waitstatus_to_exitcodes    rr-zResourceTracker._stop_locked[sk���:�:�&�&�(�1�,��-�-�/�/��8�8����9�9���	�d�h�h�������	�	�1����	rc�:�|j�|jSr)rr r"s r�getfdzResourceTracker.getfdrs�������x�x�rc�(�|j5|jj�dkDr|j�cddd�S|j��|j	�r
	ddd�ytj|j�	|j� tj|jd�d|_d|_tjd�g}	|jtjj��d}tj"�\}}	|j|�t%j&�}|gt)j*�z}|d||zgz
}d}	t,r(t/j0t.j2t4�}t)j6|||�}|�%t/j0t.j8|�	||_||_	tj|�	ddd�y#t$rY��]wxYw#t $rY��wxYw#|�%t/j0t.j8|�wwxYw#tj|��xYw#tj|�wxYw#1swYyxYw)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.rNrzUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)rr2r&r �_check_alive�osr3r!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	         rrzResourceTracker.ensure_runningvs%��
�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�-AH'�2'I�I.�(J�	H�J�H�J�	H$� J�#H$�$J�')I�I�I+�+I.�.J�J�Jc�d�	tj|jd�y#t$rYywxYw)z;Check that the pipe has not been closed by sending a probe.s
PROBE:0:noop
TF)r:�writer �OSErrorr"s rr9zResourceTracker._check_alive�s5��	�
�H�H�T�X�X�0�1����	��	�s� #�	/�/c�*�|jd||�y)z0Register name of resource with resource tracker.�REGISTERN��_send�r#�name�rtypes   rrzResourceTracker.register�s���
�
�:�t�U�+rc�*�|jd||�y)z2Unregister name of resource with resource tracker.�
UNREGISTERNrYr[s   rrzResourceTracker.unregister�s���
�
�<��u�-rc��	|j�dj	|||�jd�}t
|�dkDrtd��tj|j|�}|t
|�k(s Jdj	|t
|����y#t$rtjd|�d|�d��Y��wxYw)	NzSResourceTracker called reentrantly for resource cleanup, which is unsupported. The z object z might leak.z{0}:{1}:{2}
�asciiizmsg too longznbytes {0:n} but len(msg) {1:n})rrr<r=�format�encode�len�
ValueErrorr:rUr )r#rMr\r]�msg�nbytess      rrZzResourceTracker._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�CN)T)rrrr$r&r*r)r:r3r4r5r-r7rr9rrrZr
rrrr:sU���
H�,�
)��h�h��
�
�!�8�8�	�.�B�H	�,�.�rrc��tjtjtj�tjtjtj�tr(tj
tjt�tjtjfD]}	|j��tj�D�cic]
}|t���}}	t!|d�5}|D]�}	|j#�j%d�j'd�\}}}tj)|d�}|�t+d|�d|����|dk(r||j-|�n.|dk(r||j/|�n|d	k(rnt1d
|z����	ddd�|j7�D]B\}}|r$	t9j:dt=|�|fz�|D]}		t||���Dy#t$rY��dwxYwcc}w#t$r1	tj2tj4��n#YnxYwY��VwxYw#1swY��xYw#t$rY��wxYw#t$r%}	t9j:d|�d
|	���Yd}	~	��d}	~	wwxYw#wxYw#|j7�D]�\}}|r4	t9j:dt=|�|fz�n#t$rYnwxYw|D]I}		t||�n1#t$r%}	t9j:d|�d
|	���Yd}	~	nd}	~	wwxYw�F#wxYw��wxYw)zRun resource tracker.�rbra�:NzCannot register z. for automatic cleanup: unknown resource type rXr_�PROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: z: )rG�SIGINT�SIG_IGN�SIGTERMrFr	�SIG_UNBLOCKrIr?�stdin�stdoutr3rB�_CLEANUP_FUNCS�keys�set�open�strip�decode�split�getre�add�remove�RuntimeError�
excepthook�exc_info�itemsr<r=rd)
�fd�fr]�cache�linerMr\�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�7H�H�4J.�I�B#H �*I�-J.�#I)�8I8�	H�H� 	I�*$I�I�I	�I�I�I�I�I&�"J.�)	I5�4I5�8	J&�J!�J)�!J&�&J)�)J+�.M�#K,�+M�,	K8	�5M�7K8	�8M�L�M�	L?�L:�5M�:L?�?M�M�M�M)r:rGr?rr<�rr�__all__�hasattrrFrlrnrIrrr\�_multiprocessing�_posixshmem�updater�
shm_unlinkr|r�objectr�_resource_trackerrrrr7r�r
rr�<module>r�s��$
�
�
�����
6���� 1�2�
��M�M�6�>�>�2���L����7�7�g�������.�����)�4�4�
�	������/�/���
	��	�f�f�f�R$�%��"�1�1���%�%��
�
)�
)�
�����<r