????

Your IP : 18.117.135.125


Current Path : /lib/python3.10/multiprocessing/__pycache__/
Upload File :
Current File : //lib/python3.10/multiprocessing/__pycache__/reduction.cpython-310.pyc

o

�*�g(%�@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
gd�Zejdkp@e
ed�o@e
ed�o@e
ejd	�ZGd
d�dej�ZejZd8dd
�Zejdkr~egd�7ZddlZd9dd�dd�Zdd�Zdd�Zdd�ZGdd�de�Zn#egd�7ZddlZejdkZdd�Zdd �Zd!d�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dkr�d/d0�Z+d1d2�Z,eeje+�nd3d0�Z+d4d2�Z,eeje+�Gd5d6�d6ed7�Z-dS):�)�ABCMetaN�)�context)�send_handle�recv_handle�ForkingPickler�register�dump�win32�CMSG_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__��0/usr/lib/python3.10/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��}|||��|�|��Sr)�io�BytesIOr	�	getbuffer)r�obj�protocol�bufrrr�dumps0szForkingPickler.dumpsr)�__name__�
__module__�__qualname__�__doc__r�copyregrrr�classmethodrr&�pickle�loads�
__classcell__rrrrr!s
rcCst||��|�dS)z3Replacement for pickle.dump() using ForkingPickler.N)rr	)r#�filer$rrrr	:sr	)�	DupHandle�	duplicate�steal_handleF)�source_processcCs6t��}|dur
|}|dur|}t�|||d|tj�S)z<Duplicate a handle.  (target_process is a handle not a pid!)Nr)�_winapi�GetCurrentProcess�DuplicateHandle�DUPLICATE_SAME_ACCESS)�handle�target_process�inheritabler4�current_processrrrr2Gs�r2c	CsJt�tjd|�}zt�||t��ddtjtjB�Wt�|�St�|�w)z5Steal a handle from process identified by source_pid.Fr)r5�OpenProcess�PROCESS_DUP_HANDLEr7r6r8�DUPLICATE_CLOSE_SOURCE�CloseHandle)�
source_pidr9�source_process_handlerrrr3Ss�

�r3cCst|tj|�}|�|�dS�z&Send a handle over a local connection.N)r1r5r8�send)�connr9�destination_pid�dhrrrr_srcCs|����S)�)Receive a handle over a local connection.)�recv�detach)rErrrrdsrc@s"eZdZdZddd�Zdd�ZdS)r1zPicklable wrapper for a handle.Nc	Csf|durt��}t�tjd|�}zt�t��|||dd�|_Wt�|�nt�|�w||_	||_
dS)NFr)�os�getpidr5r=r>r7r6�_handler@�_access�_pid)rr9�access�pid�procrrrrjs
�
zDupHandle.__init__c	Cs^|jt��kr
|jSt�tjd|j�}zt�||jt��|j	dtj
�Wt�|�St�|�w)z1Get the handle.  This should only be called once.F)rOrKrLrMr5r=r>r7r6rNr?r@)rrRrrrrJys
�
�zDupHandle.detachr)r'r(r)r*rrJrrrrr1hs
r1)�DupFd�sendfds�recvfds�darwincCsZt�d|�}tt|�dg�}|�|gtjtj|fg�tr)|�d�dkr+t	d��dSdS)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�ACKNOWLEDGErI�RuntimeError)�sock�fds�msgrrrrT�s�rTc	Cst�d�}|j|}|�dt�|��\}}}}|s|st�z[tr%|�d�t|�dkr3t	dt|���|d\}}	}
|tj
kro|	tjkrtt|
�|jdkrOt�|�
|
�t|�d|dkrjtd�t|�|d���t|�WSWt	d��Wt	d��ttfy�Yt	d��w)	z/Receive an array of fds over an AF_UNIX socket.rWrrYzreceived %d items of ancdatarrXz Len is {0:n} but msg[0] is {1!r}zInvalid data received)rZ�itemsize�recvmsgr]�
CMSG_SPACE�EOFErrorr_rDr\r`r^r�
ValueError�	frombytes�AssertionError�format�list�
IndexError)ra�size�a�
bytes_sizerc�ancdata�flags�addr�
cmsg_level�	cmsg_type�	cmsg_datarrrrU�sB


�


��
����rUcCsHt�|��tjtj��}t||g�Wd�dS1swYdSrC)r]�fromfd�fileno�AF_UNIX�SOCK_STREAMrT)rEr9rF�srrrr�s"�cCsHt�|��tjtj��}t|d�dWd�S1swYdS)rHrrN)r]rwrxryrzrU)rEr{rrrr�s$�cCsBt��}|dur|�|�|��Strddlm}|�|�Std��)zReturn a wrapper for an fd.Nr)�resource_sharerz&SCM_RIGHTS appears not to be available)r�get_spawning_popenrS�duplicate_for_child�HAVE_SEND_HANDLE�r|rh)�fd�	popen_objr|rrrrS�s
rScCs.|jdurt|j|jjffSt|j|jjffSr)�__self__�getattrr�__func__r'��mrrr�_reduce_method�s
r�c@seZdZdd�ZdS)�_CcCsdSrr)rrrr�f�sz_C.fN)r'r(r)r�rrrrr��sr�cCst|j|jffSr)r��__objclass__r'r�rrr�_reduce_method_descriptor�sr�cCst|j|j|jp	iffSr)�_rebuild_partial�funcr�keywords)�prrr�_reduce_partial��r�cCstj|g|�Ri|��Sr)�	functools�partial)r�rr�rrrr��r�r�cCsddlm}t||�ffS)Nr)�	DupSocket)r|r��_rebuild_socket)r{r�rrr�_reduce_socket�sr�cCs|��Sr)rJ)�dsrrrr��sr�cCs"t|���}t||j|j|jffSr)rSrxr��familyr�proto)r{�dfrrrr��scCs|��}tj||||d�S)N)rx)rJr])r�r�rr�r�rrrr��sc@sdeZdZdZeZeZeZeZeZe	j
dkreZeZe
Z
neZeZeZeZeZeZeZeZdd�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�dSr)rrr�r�r�rl�appendr��int�__add__r�r�r�r]r�rrrrrs
zAbstractReducer.__init__N)r'r(r)r*rrr	rr�sys�platformr3r2r1rTrUrSr�r�r�r�r�rrrrrr��s(
r�)�	metaclassr)NF).�abcrr+r�r rKr-r]r�r�r�__all__r��hasattrr�Picklerrrr	r5r2r3rr�objectr1rZr_rTrUrSr�r�rr�r�rlr�r�r�r�r�r�r�r�r�rrrr�<module>sl	

�
�	

�#



Page not found | The NCLEX Doctor

Page not found!

Sorry, this page is not available...