Edit File: resource_tracker.cpython-311.pyc
� �����f\(����������������������������d�dl�Z�d�dlZd�dlZd�dlZd�dlZddlmZ�ddlmZ�g�d�Z�e ed������������Z ej��������ej��������fZ dd��iZe�j��������d k����rLd�dlZd�dlZ�e ed ������������re���������������������dej��������i�������������e���������������������dej��������i��������������G�d ��de������������Z�G�d��de������������Z�e��������������Zej��������Zej��������Zej��������Zej��������Zd��ZdS�)�����N����)�spawn)�util)�ensure_running�register� unregister�pthread_sigmask�noopc������������������������d�S��N��r ���������G/opt/alt/python311/lib64/python3.11/multiprocessing/resource_tracker.py�<lambda>r���!���s������D��r����posix� sem_unlink� semaphore� shared_memoryc�������������������������e�Zd�ZdS�)�ReentrantCallErrorN)�__name__� __module__�__qualname__r ���r���r���r���r���6���s���������������Dr���r���c��������������������D�����e�Zd�Zd��Zd��Zd��Zd��Zd��Zd��Zd��Z d��Z d ��Zd S�)�ResourceTrackerc������������������R�����t����������j����������������������|�_��������d�|�_��������d�|�_��������d�S�r���)� threading�RLock�_lock�_fd�_pid��selfs��� r����__init__zResourceTracker.__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�� Hr���c������������������l����|�j���������5��|�j��������������������������������������������dk����r |������������������������������������cd�d�d��������������S�|�j��������� �d�d�d��������������d�S�t ����������j��������|�j���������������������d�|�_��������t ����������j��������|�j��������d�������������d�|�_��������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nr���r���)r����_recursion_countr&���r ����os�close�waitpidr!���r"���s��� r����_stopzResourceTracker._stopI���s+����� �Z�� �� ���z�*�*�,�,�q�0�0��1�1�3�3� �� �� �� �� �� �� �� � ��x��� �� �� �� �� �� �� �� �� �H�T�X�����D�H��J�t�y�!�$�$�$��D�I� �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� s����1B)�B)�AB)�)B-�0B-c������������������8�����|��������������������������������������|�j��������S�r���)r���r ���r"���s��� r����getfdzResourceTracker.getfdZ���s�������������x�r���c������������������,����|�j���������5��|�j��������������������������������������������dk����r |������������������������������������cddd�������������S�|�j����������|������������������������������������r �ddd�������������dS�t����������j��������|�j��������������������� �|�j���������t����������j��������|�j��������d�������������n#�t����������$�r�Y�nw�xY�wd|�_��������d|�_��������t����������j��������d�������������g�} �|���������������������t����������j��������������������������������������������������������n#�t ����������$�r�Y�nw�xY�wd}t����������j����������������������\��}} �|���������������������|�������������t%����������j����������������������}|gt)����������j����������������������z���}|d||z��gz ��} �t,����������r$t/����������j��������t.����������j��������t4�����������������������t)����������j��������|||������������}t,����������r$t/����������j��������t.����������j��������t4�����������������������n1#�t,����������r%t/����������j��������t.����������j��������t4�����������������������w�w�xY�w||�_��������||�_��������n#��t����������j��������|���������������xY�w �t����������j��������|�������������n#�t����������j��������|�������������w�xY�w �ddd�������������dS�#�1�swxY�w�Y���dS�)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���r(���r&���r ����_check_aliver)���r*���r!���r+����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_UNBLOCK)r#����fds_to_pass�cmd�r�w�exe�args�pids��� r���r���zResourceTracker.ensure_running^���s����� ��Z��< ��< ��z�*�*�,�,�q�0�0��1�1�3�3�< ��< ��< ��< ��< ��< ��< ��< ���x�#��$�$�&�&����< ��< ��< ��< ��< ��< ��< ��< ������"�"�"����y�,�� �4�9�a�0�0�0���(��������D������ ��� �� �� ��I��J��J��J���K� ��"�"�3�:�#4�#4�#6�#6�7�7�7�7���� �� �� ��� ����N�C��7�9�9�D�A�q� ��"�"�1�%�%�%��*�,�,���u�t�@�B�B�B����s�Q�w��'��U�$��S��.�v�/?�AQ�R�R�R��-�c�4��E�E�C�$��U��.�v�/A�CS�T�T�T����%��U��.�v�/A�CS�T�T�T�T�U���������� � �� ��������������������������������y< ��< ��< ��< ��< ��< ��< ��< ��< ��< ��< ��< �����< ��< ��< ��< ��< ��< s�����1J �J �/J � !B+�*J �+ B8�5J �7B8�8'J � 1D�J � D�J �D�J �;A H2�AG2�,H2�2.H � H2�#I"�2I � I"� J �"I8�8J � J �J c������������������^����� �t����������j��������|�j��������d�������������dS�#�t����������$�r�Y�dS�w�xY�w)z;Check that the pipe has not been closed by sending a probe.s ���PROBE:0:noop TF)r)����writer ����OSErrorr"���s��� r���r0���zResourceTracker._check_alive����sI������ �� �H�T�X�0�1�1�1���4����� �� �� ��5�5� ���s������ ,�,c������������������4�����|�����������������������d||�������������dS�)z0Register name of resource with resource tracker.�REGISTERN��_send�r#����name�rtypes��� r���r���zResourceTracker.register����s������� � �:�t�U�+�+�+�+�+r���c������������������4�����|�����������������������d||�������������dS�)z2Unregister name of resource with resource tracker.� UNREGISTERNrN���rP���s��� r���r���zResourceTracker.unregister����s������� � �<��u�-�-�-�-�-r���c����������������������� �|��������������������������������������n+#�t����������$�r�t����������j��������d|��d|�d��������������Y�nw�xY�wd���������������������|||���������������������������������d������������}t ����������|������������dk����rt����������d�������������t����������j ��������|�j ��������|������������}|t ����������|������������k����s+J�d���������������������|t ����������|���������������������������������������d�S�) NzSResourceTracker called reentrantly for resource cleanup, which is unsupported. The z object z might leak.z{0}:{1}:{2} �asciii���zmsg too longznbytes {0:n} but len(msg) {1:n})r���r���r2���r3����format�encode�len� ValueErrorr)���rJ���r ���)r#���rC���rQ���rR����msg�nbytess��� r���rO���zResourceTracker._send����s����� <����!�!�!�!��!�� <�� <�� <� � �M�;��;��;�&*�;��;��;� <�� <�� <�� <�� <� <������$�$�S�$��6�6�=�=�g�F�F���s�8�8�c�>�>���^�,�,�,���$�(�C�(�(����S���!�!�!�#D�#K�#K��C��H�H�$��$�!�!�!�!�!s������%?�?N)r���r���r���r$���r&���r,���r.���r���r0���r���r���rO���r ���r���r���r���r���:���s�������������������� H��H��H������"�����A��A��A�F �� �� �,��,��,�.��.��.���������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 ��������fD�]'} �|�������������������������������������#�t����������$�r�Y��$w�xY�wd��t���������������������������������������������D���������������} �t����������|�d������������5�}|D��] } �|��������������������������������������������������������d���������������������������������d������������\��}}}t�������������������������������|d������������}|�t)����������d|��d|����������������|dk����r||������������������������������|�������������n;|d k����r||������������������������������|�������������n|d k����rnt/����������d|z�����������������#�t����������$�r,� �t����������j��������t����������j�������������������������n#��Y�nxY�wY���w�xY�w �ddd�������������n#�1�swxY�w�Y���|�����������������������������������D�]�\��}}|r8 �t7����������j��������dt;����������|������������|fz���������������n#�t����������$�r�Y�nw�xY�w|D�]P} � �t����������|���������|�������������n1#�t����������$�r$} t7����������j��������d |�d| ���������������Y�d} ~ nd} ~ ww�xY�w�L#�w�xY�w��dS�#�|�����������������������������������D�]�\��}}|r8 �t7����������j��������dt;����������|������������|fz���������������n#�t����������$�r�Y�nw�xY�w|D�]P} � �t����������|���������|�������������n1#�t����������$�r$} t7����������j��������d |�d| ���������������Y�d} ~ nd} ~ ww�xY�w�L#�w�xY�w��w�xY�w)zRun resource tracker.c������������������,�����i�|�]}|t��������������������������S�r ���)�set)�.0rR���s��� r���� <dictcomp>zmain.<locals>.<dictcomp>����s������=�=�=�e�U�C�E�E�=�=�=r����rbrV����:NzCannot register z. for automatic cleanup: unknown resource type rM���rT����PROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: z: )r=����SIGINT�SIG_IGN�SIGTERMr<���r ���rA���r?���r5����stdin�stdoutr*���r8����_CLEANUP_FUNCS�keys�open�strip�decode�split�getrZ����add�remove�RuntimeError� excepthook�exc_info�itemsr2���r3���rY���) �fd�f�cache�linerC���rQ���rR����cleanup_func�rtype_cache�es ��� r����mainr~�������s��������M�&�-���0�0�0� �M�&�.�&�.�1�1�1���E���v�1�3C�D�D�D��i��� $������ � �G�G�I�I�I�I���� �� �� ��D� ����� >�=�~�':�':�'<�'<�=�=�=�E�-� �"�d�^�^�� �q��� �� ���'+�z�z�|�|�':�':�7�'C�'C�'I�'I�#�'N�'N�$�C��u�#1�#5�#5�e�T�#B�#B�L�#�+�(�=�t��=��=�5:�=��=�>��>��>���j�(�(��e��(�(��.�.�.�.���,�,��e��+�+�D�1�1�1�1������*�+D�s�+J�K�K�K��� ��������������7�7�7���������� ����# � �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �2�#(�+�+�-�-�� �� ��E�;��� ���M��#N�#&�{�#3�#3�U�";�#<��=��=��=��=���!��������D�����#�� �� ���N�&�u�-�d�3�3�3�3��$��N��N��N� � � �D�D�D�!�!�&L�M�M�M�M�M�M�M�M�����N�������D�D�D�D� � �� ��%�+�+�-�-�� �� ��E�;��� ���M��#N�#&�{�#3�#3�U�";�#<��=��=��=��=���!��������D�����#�� �� ���N�&�u�-�d�3�3�3�3��$��N��N��N� � � �D�D�D�!�!�&L�M�M�M�M�M�M�M�M�����N�������D�D�D�D� � ���s!���B.�. B;�:B;�"K��2H �9C G�H � G=�G2�1G=�2G6 �4G=�9H �<G=�=H �K�� H�K��H�K��4&I� I(�'I(�1J�J9� J5�J0�+J9�0J5�5J9�9J;�M*�&L�M*� L �M*�L �M*�L1�0M#�1 M�;M�M#�M�M#�"M*�#M%�%M*)r)���r=���r5���r���r2�����r���r����__all__�hasattrr<���re���rg���r?���rj���rQ����_multiprocessing�_posixshmem�updater���� shm_unlinkrs���r����objectr����_resource_trackerr���r���r���r.���r~���r ���r���r����<module>r�������s�����$� � � � �� � � � �� � � � �������������������������������������� 6� 6� 6����� 1�2�2� ��M�6�>�2�����L�L�����7�g�������������w���.�.�������)�4� �� �� �� �������/�������� �� �� �� �� ��� �� �� �M��M��M��M��M�f��M��M��M�`�$�O�%�%���"�1���%�� � )� ����<��<��<��<��<r���