HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/multiprocessing/__pycache__/resource_sharer.cpython-37.pyc
B

"��g��@s�ddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	dgZ
ejdkrxe
dg7Z
Gd	d�de�Z
ne
d
g7Z
Gdd
�d
e�ZGdd
�d
e�Ze�ZejZdS)�N�)�process)�	reduction)�util�stop�win32�	DupSocketc@s eZdZdZdd�Zdd�ZdS)rzPicklable wrapper for a socket.cs(|����fdd�}t�|�j�|_dS)Ncs��|�}|�|�dS)N)�shareZ
send_bytes)�conn�pidr	)�new_sock��;/usr/local/lib/python3.7/multiprocessing/resource_sharer.py�sends
z DupSocket.__init__.<locals>.send)�dup�_resource_sharer�register�close�_id)�selfZsockrr
)rr�__init__szDupSocket.__init__c	Cs*t�|j��}|��}t�|�SQRXdS)z1Get the socket.  This should only be called once.N)r�get_connectionrZ
recv_bytes�socketZ	fromshare)rr
r	r
r
r�detach$szDupSocket.detachN)�__name__�
__module__�__qualname__�__doc__rrr
r
r
rrs�DupFdc@s eZdZdZdd�Zdd�ZdS)rz-Wrapper for fd which can be used at any time.cs4t�|���fdd�}�fdd�}t�||�|_dS)Ncst�|�|�dS)N)rZsend_handle)r
r)�new_fdr
rr1szDupFd.__init__.<locals>.sendcst���dS)N)�osrr
)rr
rr3szDupFd.__init__.<locals>.close)r rrrr)r�fdrrr
)rrr/s
zDupFd.__init__c	Cs"t�|j��}t�|�SQRXdS)z-Get the fd.  This should only be called once.N)rrrrZrecv_handle)rr
r
r
rr7szDupFd.detachN)rrrrrrr
r
r
rr-sc@sNeZdZdZdd�Zdd�Zedd��Zdd	d
�Zdd�Z	d
d�Z
dd�ZdS)�_ResourceSharerz.Manager for resources using background thread.cCs@d|_i|_g|_t��|_d|_d|_d|_t	�
|tj�dS)Nr)
�_key�_cache�
_old_locks�	threading�Lock�_lock�	_listener�_address�_threadrZregister_after_forkr"�
_afterfork)rr
r
rr?s
z_ResourceSharer.__init__c	CsN|j�>|jdkr|��|jd7_||f|j|j<|j|jfSQRXdS)z+Register resource, returning an identifier.Nr)r(r*�_startr#r$)rrrr
r
rrIs
z_ResourceSharer.registercCs<ddlm}|\}}||t��jd�}|�|t��f�|S)z<Return connection from which to receive identified resource.r)�Client)�authkey)�
connectionr.r�current_processr/rr �getpid)Zidentr.�address�key�cr
r
rrRs
z_ResourceSharer.get_connectionNc	Cs�ddlm}|j��|jdk	r�||jt��jd�}|�d�|��|j	�
|�|j	��rdt�
d�|j��d|_	d|_d|_x |j��D]\}\}}|�q�W|j��WdQRXdS)z:Stop the background thread and clear registered resources.r)r.N)r/z._ResourceSharer thread did not stop when asked)r0r.r(r*rr1r/rrr+�joinZis_aliverZsub_warningr)r$�items�clear)rZtimeoutr.r5r4rrr
r
rr[s"





z_ResourceSharer.stopcCsnx |j��D]\}\}}|�qW|j��|j�|j�t��|_|jdk	rX|j�	�d|_d|_
d|_dS)N)r$r7r8r%�appendr(r&r'r)rr*r+)rr4rrr
r
rr,ps




z_ResourceSharer._afterforkcCsjddlm}|jdkstd��t�d�|t��jd�|_|jj	|_
tj|j
d�}d|_|��||_dS)Nr)�ListenerzAlready have Listenerz0starting listener and thread for sending handles)r/)�targetT)r0r:r)�AssertionErrorr�debugrr1r/r3r*r&ZThread�_serveZdaemon�startr+)rr:�tr
r
rr-~s

z_ResourceSharer._startc	Cs�ttd�r t�tjtdtj��x�y\|j���H}|��}|dkrBP|\}}|j	�
|�\}}z|||�Wd|�XWdQRXWq"t��s�t
jt
���Yq"Xq"WdS)N�pthread_sigmaskr)�hasattr�signalrA�	SIG_BLOCK�range�NSIGr)ZacceptZrecvr$�poprZ
is_exiting�sys�
excepthook�exc_info)rr
�msgr4Zdestination_pidrrr
r
rr>�s 
z_ResourceSharer._serve)N)rrrrrr�staticmethodrrr,r-r>r
r
r
rr"=s
		
r")r rCrrHr&�r�contextrr�__all__�platform�objectrrr"rrr
r
r
r�<module>s 


`