Server: appserver-7f0f8755-nginx-15961cad18524ec5a9db05f2a6a7e440
Current directory: /usr/lib/python3.11/multiprocessing/__pycache__
Software: nginx/1.27.5
Shell Command
Create a new file
Upload file
File: resource_tracker.cpython-311.pyc
� ��h # � � � 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 e� � Zej Zej Zej Zej Zd� ZdS )� N� )�spawn)�util)�ensure_running�register� unregister�pthread_sigmask�noopc � � d S �N� r � �7/usr/lib/python3.11/multiprocessing/resource_tracker.py�
r ! s � �D� r �posix� sem_unlink� semaphore� shared_memoryc �> � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z d S ) �ResourceTrackerc �R � t j � � | _ d | _ d | _ d S r )� threading�Lock�_lock�_fd�_pid��selfs r �__init__zResourceTracker.__init__8 s# � ��^�%�%�� ������ � � r c �� � | j 5 | 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 �os�close�waitpidr r s r �_stopzResourceTracker._stop= s� � � �Z� � ��x��� � � � � � � � � �H�T�X�����D�H��J�t�y�!�$�$�$��D�I� � � � � � � � � � � � ���� � � � � � s � A,�AA,�,A0�3A0c �8 � | � � � | j S r )r r r s r �getfdzResourceTracker.getfdJ s � ��������x�r c � � | j 5 | 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 t0 � � t% j |||� � }t( r$t+ j t* j t0 � � n1# t( r%t+ j t* j t0 � � 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.Nr zUresource_tracker: process died unexpectedly, relaunching. Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)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_runningN s� � � �Z� 9 � 9 ��x�#��$�$�&�&� ��9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 � ����"�"�"�� �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���� ����� � �� ����������� ��������������������s9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 � 9 ���� 9 � 9 � 9 � 9 � 9 � 9 s� �I�I�!A.�-I�. A;�8I�:A;�;'I�#1C�I� C"�I�!C"�"I�>A G5�AF5� ,G5�5.G#�#G5�&H%�5H�H%�I�%H;�;I�I�Ic �^ � 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 r( 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.� UNREGISTERNrF rH s r r zResourceTracker.unregister� s � �� � �<��u�-�-�-�-�-r c �v � | � � � d� |||� � � d� � }t |� � dk rt d� � �t j | j |� � }|t |� � k s+J d� |t |� � � � � � �d S )Nz{0}:{1}:{2} �asciii zmsg too longznbytes {0:n} but len(msg) {1:n})r �format�encode�len� ValueErrorr! rB r )r r; rI rJ �msg�nbytess r rG zResourceTracker._send� s� � ��������$�$�S�$��6�6�=�=�g�F�F���s�8�8�c�>�>� �^�,�,�,���$�(�C�(�(����S���!�!�!�#D�#K�#K��C��H�H�$� $�!�!�!�!�!r N)�__name__� __module__�__qualname__r r$ r&