python (3.12.0)

(root)/
lib/
python3.12/
multiprocessing/
__pycache__/
resource_sharer.cpython-312.opt-1.pyc

̑eddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	dgZ
ejdk(re
dgz
Z
Gd	deZ
ne
d
gz
Z
Gdd
eZGdd
eZeZej"Zy)N)process)	reduction)utilstopwin32	DupSocketceZdZdZdZdZy)r	zPicklable wrapper for a socket.cz|jfd}tj|j|_y)NcJj|}|j|yN)share
send_bytes)connpidrnew_socks   S/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/multiprocessing/resource_sharer.pysendz DupSocket.__init__.<locals>.sends s+&)dup_resource_sharerregisterclose_id)selfsockrrs   @r__init__zDupSocket.__init__s-xxzH
'(00x~~FDHrctj|j5}|j}t	j
|cdddS#1swYyxYw)z1Get the socket.  This should only be called once.N)rget_connectionr
recv_bytessocket	fromshare)rrrs   rdetachzDupSocket.detach$sE!00:
/d)''.
/
/
/s%AAN__name__
__module____qualname____doc__rr#rrr	r	s-	G	/rDupFdceZdZdZdZdZy)r*z-Wrapper for fd which can be used at any time.cztj|fd}fd}tj|||_y)Nc4tj||yr
)rsend_handle)rrnew_fds  rrzDupFd.__init__.<locals>.send1s%%dFC8rc0tjyr
)osr)r/srrzDupFd.__init__.<locals>.close3s r)r1rrrr)rfdrrr/s    @rrzDupFd.__init__/s.VVBZF
9
!'00u=DHrctj|j5}tj|cdddS#1swYyxYw)z-Get the fd.  This should only be called once.N)rrrrrecv_handle)rrs  rr#zDupFd.detach7s9!00:
3d ,,T2
3
3
3s	?ANr$r)rrr*r*-s;	>	3rcFeZdZdZdZdZedZd
dZdZ	dZ
d	Zy)_ResourceSharerz.Manager for resources using background thread.cd|_i|_tj|_d|_d|_d|_tj|tjy)Nr)_key_cache	threadingLock_lock	_listener_address_threadrregister_after_forkr6
_afterfork)rs rrz_ResourceSharer.__init__?sI	^^%

  'A'ABrc|j5|j|j|xjdz
c_||f|j|j<|j|jfcdddS#1swYyxYw)z+Register resource, returning an identifier.Nr)r<r>_startr8r9)rrrs   rrz_ResourceSharer.registerHsd
ZZ	.}}$
IINI&*E]DKK		"MM499-	.	.	.sA$A;;Bcddlm}|\}}||tjj}|j|t
jf|S)z<Return connection from which to receive identified resource.rClientauthkey)
connectionrFrcurrent_processrHrr1getpid)identrFaddresskeycs     rrz_ResourceSharer.get_connectionQsG	'7G$;$;$=$E$EF	RYY[!"rNcddlm}|j5|j||jt	j
j}|jd|j|jj||jjrtjd|jjd|_	d|_d|_|jj!D]\}\}}||jj#dddy#1swYyxYw)z:Stop the background thread and clear registered resources.rrENrGz._ResourceSharer thread did not stop when asked)rIrFr<r>rrJrHrrr?joinis_aliversub_warningr=r9itemsclear)rtimeoutrFrOrNrrs       rrz_ResourceSharer.stopZs&
ZZ	$}}(4==#*#:#:#<#D#DFt	!!'*<<((*$$&;<$$&# $
!%*.++*;*;*=&C$G!!#!	$	$	$sDD::Ec:|jjD]\}\}}||jj|jj	|j
|j
j
d|_d|_d|_yr
)	r9rTrUr<_at_fork_reinitr=rr>r?)rrNrrs    rrAz_ResourceSharer._afterforkos{"&++"3"3"5	C$G	

""$>>%NN  "
rc@ddlm}tjd|t	j
j|_|jj|_	tj|j}d|_
|j||_y)Nr)Listenerz0starting listener and thread for sending handlesrG)targetT)rIrZrdebugrrJrHr=rMr>r:Thread_servedaemonstartr?)rrZts   rrCz_ResourceSharer._startzsi(

EF!'*A*A*C*K*KL..
DKK0		rc*ttdr6tjtjtj		|j
j
5}|j}|
	dddy|\}}|jj|\}}	||||	dddv#|wxYw#1swYxYw#tjs$tjtjYUxYw)Npthread_sigmask)hasattrsignalrc	SIG_BLOCK
valid_signalsr=acceptrecvr9popr
is_exitingsys
excepthookexc_info)rrmsgrNdestination_pidrrs       rr^z_ResourceSharer._serves6,-""6#3#3V5I5I5KL

4^^**,	 ))+C{	 	 ,/(C"&++//#"6KD% T?3	 	 	 
4(NNCLLN3sH	C#C
7C#C
$	B>-C
5C>	CC

CC:Dr
)r%r&r'r(rrstaticmethodrrrArCr^r)rrr6r6=s88C.$*		4rr6)r1rer!rlr:rcontextrr__all__platformobjectr	r*r6rrr)rr<module>rws



(<<7}G
/F
/ yG
3
3 Y4fY4x#$r