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__/reduction.cpython-37.opt-1.pyc
B

"��g�$�@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddddd	gZejd
kp�e
ed�o�e
ed�o�e
ejd
�ZGdd�dej�ZejZd5dd	�Zejd
k�redddg7ZddlZd6dd�Zdd�Zdd�Zdd�ZGdd�de�ZnHedddg7ZddlZejdkZdd�Zdd�Zdd�Zd d�Zd!d�Zd"d#�ZGd$d%�d%�Z ee!e �j"�e�d&d'�Z#ee!e$j%�e#�ee!e&j'�e#�d(d)�Z(d*d+�Z)eej*e(�ejd
k�r�d,d-�Z+d.d/�Z,eeje+�nd0d-�Z+d1d/�Z,eeje+�Gd2d3�d3ed4�Z-dS)7�)�ABCMetaN�)�context�send_handle�recv_handle�ForkingPickler�register�dump�win32ZCMSG_LEN�
SCM_RIGHTS�sendmsgcsJeZdZdZiZejZ�fdd�Ze	dd��Z
e	d	dd��Zej
Z
�ZS)
rz)Pickler subclass used by multiprocessing.cs*t�j|�|j��|_|j�|j�dS)N)�super�__init__�_copyreg_dispatch_table�copy�dispatch_table�update�_extra_reducers)�self�args)�	__class__��5/usr/local/lib/python3.7/multiprocessing/reduction.pyr&szForkingPickler.__init__cCs||j|<dS)z&Register a reduce function for a type.N)r)�cls�type�reducerrrr+szForkingPickler.registerNcCs t��}|||��|�|��S)N)�io�BytesIOr	�	getbuffer)r�obj�protocol�bufrrr�dumps0szForkingPickler.dumps)N)�__name__�
__module__�__qualname__�__doc__r�copyregrrr�classmethodrr"�pickle�loads�
__classcell__rr)rrr!scCst||��|�dS)z3Replacement for pickle.dump() using ForkingPickler.N)rr	)r�filer rrrr	:s�	DupHandle�	duplicate�steal_handleFcCs*|dkrt��}t�t��||d|tj�S)z<Duplicate a handle.  (target_process is a handle not a pid!)Nr)�_winapi�GetCurrentProcess�DuplicateHandle�DUPLICATE_SAME_ACCESS)�handleZtarget_processZinheritablerrrr.Gs

c	CsBt�tjd|�}z t�||t��ddtjtjB�St�|�XdS)z5Steal a handle from process identified by source_pid.FrN)r0�OpenProcess�PROCESS_DUP_HANDLEr2r1r3�DUPLICATE_CLOSE_SOURCE�CloseHandle)Z
source_pidr4Zsource_process_handlerrrr/Os
cCst|tj|�}|�|�dS)z&Send a handle over a local connection.N)r-r0r3�send)�connr4�destination_pidZdhrrrr[scCs|����S)z)Receive a handle over a local connection.)�recv�detach)r:rrrr`sc@s"eZdZdZddd�Zdd�ZdS)r-zPicklable wrapper for a handle.Nc	Cs\|dkrt��}t�tjd|�}zt�t��|||dd�|_Wdt�|�X||_	||_
dS)NFr)�os�getpidr0r5r6r2r1�_handler8�_access�_pid)rr4�access�pid�procrrrrfszDupHandle.__init__c	CsV|jt��kr|jSt�tjd|j�}zt�||jt��|j	dtj
�St�|�XdS)z1Get the handle.  This should only be called once.FN)rBr>r?r@r0r5r6r2r1rAr7r8)rrErrrr=us
zDupHandle.detach)N)r#r$r%r&rr=rrrrr-ds
�DupFd�sendfds�recvfds�darwincCsVt�d|�}tt|�dg�}|�|gtjtj|fg�trR|�d�dkrRt	d��dS)z,Send an array of fds over an AF_UNIX socket.�i�r�Az%did not receive acknowledgement of fdN)
�array�bytes�lenr�socket�
SOL_SOCKETr�ACKNOWLEDGEr<�RuntimeError)�sockZfds�msgrrrrG�s
c	Cst�d�}|j|}|�dt�|��\}}}}|s:|s:t�y�trJ|�d�t|�dkrft	dt|���|d\}}	}
|tj
kr�|	tjkr�t|
�|jdkr�t�|�
|
�t|�d|dkr�td�t|�|d���t|�SWnttfk
r�YnXt	d��d	S)
z/Receive an array of fds over an AF_UNIX socket.rJrrLzreceived %d items of ancdatarrKz Len is {0:n} but msg[0] is {1!r}zInvalid data receivedN)rM�itemsizeZrecvmsgrPZ
CMSG_SPACE�EOFErrorrRr9rOrSrQr�
ValueErrorZ	frombytes�AssertionError�format�list�
IndexError)rT�size�aZ
bytes_sizerUZancdata�flagsZaddrZ
cmsg_levelZ	cmsg_typeZ	cmsg_datarrrrH�s2





c	Cs2t�|��tjtj��}t||g�WdQRXdS)z&Send a handle over a local connection.N)rP�fromfd�fileno�AF_UNIX�SOCK_STREAMrG)r:r4r;�srrrr�sc	Cs0t�|��tjtj��}t|d�dSQRXdS)z)Receive a handle over a local connection.rrN)rPr`rarbrcrH)r:rdrrrr�scCsFt��}|dk	r |�|�|��Str:ddlm}|�|�Std��dS)zReturn a wrapper for an fd.Nr)�resource_sharerz&SCM_RIGHTS appears not to be available)rZget_spawning_popenrFZduplicate_for_child�HAVE_SEND_HANDLE�rerX)�fdZ	popen_objrerrrrF�s
cCs2|jdkrt|j|jjffSt|j|jjffSdS)N)�__self__�getattrr�__func__r#)�mrrr�_reduce_method�s
rmc@seZdZdd�ZdS)�_CcCsdS)Nr)rrrr�f�sz_C.fN)r#r$r%rorrrrrn�srncCst|j|jffS)N)rj�__objclass__r#)rlrrr�_reduce_method_descriptor�srqcCst|j|j|jpiffS)N)�_rebuild_partial�funcr�keywords)�prrr�_reduce_partial�srvcCstj|f|�|�S)N)�	functools�partial)rsrrtrrrrr�srrcCsddlm}t||�ffS)Nr)�	DupSocket)rery�_rebuild_socket)rdryrrr�_reduce_socket�sr{cCs|��S)N)r=)Zdsrrrrz�srzcCs"t|���}t||j|j|jffS)N)rFrarz�familyr�proto)rd�dfrrrr{�scCs|��}tj||||d�S)N)ra)r=rP)r~r|rr}rhrrrrz�sc@sdeZdZdZeZeZeZeZeZe	j
dkr8eZeZe
Z
neZeZeZeZeZeZeZeZdd�ZdS)�AbstractReducerz�Abstract base class for use in implementing a Reduction class
    suitable for use in replacing the standard reduction mechanism
    used in multiprocessing.r
cGsNttt�j�t�tttj�t�tttj	�t�tt
jt�tt
j
t�dS)N)rrrnrormr[�appendrq�int�__add__rwrxrvrPr{)rrrrrrs
zAbstractReducer.__init__N)r#r$r%r&rrr	rr�sys�platformr/r.r-rGrHrFrmrqrrr{rzrrrrrr�s&
r)�	metaclass)N)NF).�abcrr'rwrr>r)rPr�rgr�__all__r��hasattrrfZPicklerrrr	r0r.r/rr�objectr-rMrRrGrHrFrmrnrrorqr[r�r�r�rvrrrxr{rzrrrrr�<module>
sb




#