%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/multiprocessing/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/multiprocessing/__pycache__/reduction.cpython-38.pyc

U

qa(%@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddddd	gZejd
kpe
edoe
edoe
ejd
ZGdddejZejZd6dd	Zejd
kredddg7ZddlZd7ddddZddZddZddZGdddeZnHedddg7ZddlZejdkZddZddZd dZd!dZd"dZd#d$ZGd%d&d&Z ee!e j"ed'd(Z#ee!e$j%e#ee!e&j'e#d)d*Z(d+d,Z)eej*e(ejd
krd-d.Z+d/d0Z,eeje+nd1d.Z+d2d0Z,eeje+Gd3d4d4ed5Z-dS)8)ABCMetaN)contextsend_handlerecv_handleForkingPicklerregisterdumpwin32CMSG_LEN
SCM_RIGHTSsendmsgcsJeZdZdZiZejZfddZe	ddZ
e	d	ddZej
Z
ZS)
rz)Pickler subclass used by multiprocessing.cs*tj||j|_|j|jdSN)super__init___copyreg_dispatch_tablecopydispatch_tableupdate_extra_reducersselfargs	__class__5/usr/local/lib/python3.8/multiprocessing/reduction.pyr&szForkingPickler.__init__cCs||j|<dS)z&Register a reduce function for a type.N)r)clstypereducerrrr+szForkingPickler.registerNcCs t}|||||Sr)ioBytesIOr		getbuffer)robjprotocolbufrrrdumps0szForkingPickler.dumps)N)__name__
__module____qualname____doc__rcopyregrrrclassmethodrr&pickleloads
__classcell__rrrrr!s
cCst|||dS)z3Replacement for pickle.dump() using ForkingPickler.N)rr	)r#filer$rrrr	:s	DupHandle	duplicatesteal_handleF)source_processcCs6t}|dkr|}|dkr |}t|||d|tjS)z<Duplicate a handle.  (target_process is a handle not a pid!)Nr)_winapiGetCurrentProcessDuplicateHandleDUPLICATE_SAME_ACCESS)handleZtarget_processinheritabler4current_processrrrr2Gsc	CsFttjd|}z$t||tddtjtjBWSt|XdS)z5Steal a handle from process identified by source_pid.FrN)r5OpenProcessPROCESS_DUP_HANDLECloseHandler7r6r8DUPLICATE_CLOSE_SOURCE)Z
source_pidr9Zsource_process_handlerrrr3Ss
cCst|tj|}||dSz&Send a handle over a local connection.N)r1r5r8send)connr9destination_pidZdhrrrr_scCs|S))Receive a handle over a local connection.)recvdetach)rBrrrrdsc@s"eZdZdZdddZddZdS)r1zPicklable wrapper for a handle.Nc	Cs\|dkrt}ttjd|}ztt|||dd|_W5t|X||_	||_
dS)NFr)osgetpidr5r<r=r>r7r6_handle_access_pid)rr9accesspidprocrrrrjs
zDupHandle.__init__c	CsZ|jtkr|jSttjd|j}z"t||jt	|j
dtjWSt|XdS)z1Get the handle.  This should only be called once.FN)rKrGrHrIr5r<r=r>r7r6rJr?)rrNrrrrFys
zDupHandle.detach)N)r'r(r)r*rrFrrrrr1hs
DupFdsendfdsrecvfdsdarwincCsVtd|}tt|dg}||gtjtj|fgtrR|ddkrRt	ddS)z,Send an array of fds over an AF_UNIX socket.irAz%did not receive acknowledgement of fdN)
arraybyteslenr
socket
SOL_SOCKETrACKNOWLEDGErERuntimeError)sockfdsmsgrrrrPs
c	Cstd}|j|}|dt|\}}}}|s:|s:tztrJ|dt|dkrft	dt||d\}}	}
|tj
kr|	tjkrt|
|jdkrt|
|
t|d|dkrtdt||dt|WSWnttfk
rYnXt	dd	S)
z/Receive an array of fds over an AF_UNIX socket.rSrrUzreceived %d items of ancdatarrTz Len is {0:n} but msg[0] is {1!r}zInvalid data receivedN)rVitemsizerecvmsgrY
CMSG_SPACEEOFErrorr[rArXr\rZr
ValueError	frombytesAssertionErrorformatlist
IndexError)r]sizea
bytes_sizer_ancdataflagsaddr
cmsg_level	cmsg_type	cmsg_datarrrrQs<




c	Cs2t|tjtj}t||gW5QRXdSr@)rYfromfdfilenoAF_UNIXSOCK_STREAMrP)rBr9rCsrrrrsc
Cs<t|tjtj}t|ddW5QRSQRXdS)rDrrN)rYrsrtrurvrQ)rBrwrrrrscCsFt}|dk	r |||Str:ddlm}||StddS)zReturn a wrapper for an fd.Nr)resource_sharerz&SCM_RIGHTS appears not to be available)rget_spawning_popenrOduplicate_for_childHAVE_SEND_HANDLErxrd)fd	popen_objrxrrrrOs
cCs2|jdkrt|j|jjffSt|j|jjffSdSr)__self__getattrr__func__r'mrrr_reduce_methods
rc@seZdZddZdS)_CcCsdSrr)rrrrfsz_C.fN)r'r(r)rrrrrrsrcCst|j|jffSr)r__objclass__r'rrrr_reduce_method_descriptorsrcCst|j|j|jpiffSr)_rebuild_partialfuncrkeywords)prrr_reduce_partialsrcCstj|f||Sr)	functoolspartial)rrrrrrrsrcCsddlm}t||ffS)Nr)	DupSocket)rxr_rebuild_socket)rwrrrr_reduce_socketsrcCs|Sr)rF)ZdsrrrrsrcCs"t|}t||j|j|jffSr)rOrtrfamilyrproto)rwdfrrrrscCs|}tj||||dS)N)rt)rFrY)rrrrr}rrrrsc@sdeZdZdZeZeZeZeZeZe	j
dkr8eZeZe
Z
neZeZeZeZeZeZeZeZddZdS)AbstractReducerzAbstract base class for use in implementing a Reduction class
    suitable for use in replacing the standard reduction mechanism
    used in multiprocessing.r
cGsNtttjttttjttttj	ttt
jttt
j
tdSr)rrrrrrhappendrint__add__rrrrYrrrrrrs
zAbstractReducer.__init__N)r'r(r)r*rrr	rrsysplatformr3r2r1rPrQrOrrrrrrrrrrrs&
r)	metaclass)N)NF).abcrr+rr rGr-rYrr|r__all__rhasattrr{Picklerrrr	r5r2r3rrobjectr1rVr[rPrQrOrrrrrrhrrrrrrrrrrrrr<module>
sj


	
#


Zerion Mini Shell 1.0