HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/multiprocessing/__pycache__/resource_tracker.cpython-310.pyc
o

�N�g
#�@s�ddlZddlZddlZddlZddlZddlmZddlmZgd�Ze	ed�Z
ejejfZ
ddd	�iZejd
krWddlZddlZe	ed�rOe�deji�e�d
eji�Gdd�de�Ze�ZejZejZejZejZdd�ZdS)�N�)�spawn)�util)�ensure_running�register�
unregister�pthread_sigmaskZnoopcCsdS�N�r
r
r
�F/opt/saltstack/salt/lib/python3.10/multiprocessing/resource_tracker.py�<lambda>!sr�posix�
sem_unlinkZ	semaphoreZ
shared_memoryc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�ResourceTrackercCst��|_d|_d|_dSr	)�	threading�Lock�_lock�_fd�_pid��selfr
r
r�__init__8s

zResourceTracker.__init__cCsn|j�*|jdur	Wd�dSt�|j�d|_t�|jd�d|_Wd�dS1s0wYdS)Nr)rr�os�close�waitpidrrr
r
r�_stop=s
�"�zResourceTracker._stopcCs|��|jSr	)rrrr
r
r�getfdJszResourceTracker.getfdcCs�|j��|jdur?|��r	Wd�dSt�|j�z|jdur)t�|jd�Wn	ty3Ynwd|_d|_t�	d�g}z
|�
tj�
��Wn	tyTYnwd}t��\}}zXzA|�
|�t��}|gt��}|d||g7}ztr�t�tjt�t�|||�}Wtr�t�tjt�ntr�t�tjt�wwWn	t�|��||_||_Wt�|�nt�|�wWd�dS1s�wYdS)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.NrzUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)rr�_check_aliverrrr�ChildProcessError�warnings�warn�append�sys�stderr�fileno�	Exception�piperZget_executabler�_args_from_interpreter_flags�
_HAVE_SIGMASK�signalr�	SIG_BLOCK�_IGNORED_SIGNALSZspawnv_passfds�SIG_UNBLOCK)rZfds_to_pass�cmd�r�wZexe�args�pidr
r
rrNs^
�
��
�
����
"�zResourceTracker.ensure_runningcCs*z
t�|jd�WdStyYdSw)z;Check that the pipe has not been closed by sending a probe.s
PROBE:0:noop
FT)r�writer�OSErrorrr
r
rr�s��zResourceTracker._check_alivecC�|�d||�dS)z0Register name of resource with resource tracker.�REGISTERN��_send�r�name�rtyper
r
rr��zResourceTracker.registercCr4)z2Unregister name of resource with resource tracker.�
UNREGISTERNr6r8r
r
rr�r;zResourceTracker.unregistercCsb|��d�|||��d�}t|�dkrtd��t�|j|�}|t|�ks/Jd�|t|����dS)Nz{0}:{1}:{2}
�asciiizmsg too longznbytes {0:n} but len(msg) {1:n})r�format�encode�len�
ValueErrorrr2r)rr-r9r:�msg�nbytesr
r
rr7�s
�zResourceTracker._sendN)�__name__�
__module__�__qualname__rrrrrrrr7r
r
r
rr6s
@rc
Cs�t�tjtj�t�tjtj�trt�tjt�tj	tj
fD]}z|��Wqty0Yqwdd�t
��D�}z�t|d��j}|D]_}zF|���d��d�\}}}t
�|d�}|durgtd|�d|����|d	krs||�|�n|d
kr||�|�n|dkr�ntd|��WqCty�z	tjt���WnYYqCwWd�n1s�wYW|��D]I\}}|r�z
t�d
t|�|f�Wn	ty�Ynw|D])}z&zt
||�Wnty�}	zt�d||	f�WYd}	~	nd}	~	wwWq�wq�dS|��D]N\}}|�r&z
t�d
t|�|f�Wn
t�y%Ynw|D]+}z(zt
||�Wnt�yO}	zt�d||	f�WYd}	~	nd}	~	wwW�q(w�qw)zRun resource tracker.cSsi|]}|t��qSr
)�set)�.0r:r
r
r�
<dictcomp>�szmain.<locals>.<dictcomp>�rbr=�:NzCannot register z. for automatic cleanup: unknown resource type r5r<ZPROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: %r: %s)r)�SIGINT�SIG_IGN�SIGTERMr(rr,r+r"�stdin�stdoutrr%�_CLEANUP_FUNCS�keys�open�strip�decode�split�getrA�add�remove�RuntimeError�
excepthook�exc_info�itemsrr r@)
�fd�f�cache�liner-r9r:Zcleanup_funcZrtype_cache�er
r
r�main�s����������

�������

�������rc)rr)r"rr�rr�__all__�hasattrr(rLrNr+rQr9Z_multiprocessingZ_posixshmem�updaterZ
shm_unlink�objectrZ_resource_trackerrrrrrcr
r
r
r�<module>s:
�

��w