python (3.11.7)

(root)/
lib/
python3.11/
multiprocessing/
__pycache__/
resource_sharer.cpython-311.opt-1.pyc

eddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	dgZ
ejdkre
dgz
Z
Gd	deZ
ne
d
gz
Z
Gdd
eZGdd
eZeZejZdS)N)process)	reduction)utilstopwin32	DupSocketceZdZdZdZdZdS)r	zPicklable wrapper for a socket.c|fd}t|j|_dS)Nc\|}||dSN)share
send_bytes)connpidrnew_socks   S/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/multiprocessing/resource_sharer.pysendz DupSocket.__init__.<locals>.sends, s++&&&&&)dup_resource_sharerregisterclose_id)selfsockrrs   @r__init__zDupSocket.__init__sHxxzzH
'
'
'
'
'(00x~FFDHHHrct|j5}|}t	j|cdddS#1swxYwYdS)z1Get the socket.  This should only be called once.N)rget_connectionr
recv_bytessocket	fromshare)rrrs   rdetachzDupSocket.detach$s!00::
/d))'..
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/s(AAAN__name__
__module____qualname____doc__rr#rrr	r	s;--	G	G	G	/	/	/	/	/rDupFdceZdZdZdZdZdS)r*z-Wrapper for fd which can be used at any time.ctj|fd}fd}t|||_dS)Nc4tj||dSr
)rsend_handle)rrnew_fds  rrzDupFd.__init__.<locals>.send1s%dFC88888rc0tjdSr
)osr)r/srrzDupFd.__init__.<locals>.close3s     r)r1rrrr)rfdrrr/s    @rrzDupFd.__init__/s]VBZZF
9
9
9
9
9
!
!
!
!
!'00u==DHHHrct|j5}tj|cdddS#1swxYwYdS)z-Get the fd.  This should only be called once.N)rrrrrecv_handle)rrs  rr#zDupFd.detach7s!00::
3d ,T22
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3sAAANr$r)rrr*r*-s8;;	>	>	>	3	3	3	3	3rcNeZdZdZdZdZedZd
dZdZ	dZ
d	ZdS)_ResourceSharerz.Manager for resources using background thread.cd|_i|_tj|_d|_d|_d|_tj	|tjdS)Nr)_key_cache	threadingLock_lock	_listener_address_threadrregister_after_forkr6
_afterfork)rs rrz_ResourceSharer.__init__?sP	^%%

 'ABBBBBrc|j5|j||xjdz
c_||f|j|j<|j|jfcdddS#1swxYwYdS)z+Register resource, returning an identifier.Nr)r<r>_startr8r9)rrrs   rrz_ResourceSharer.registerHs
Z	.	.}$


IINII&*E]DK	"M49-	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.sA
AA#&A#cddlm}|\}}||tjj}||t
jf|S)z<Return connection from which to receive identified resource.rClientauthkey)
connectionrFrcurrent_processrHrr1getpid)identrFaddresskeycs     rrz_ResourceSharer.get_connectionQsa	'&&&&&F7G$;$=$=$EFFF	RY[[!"""rNcxddlm}|j5|j||jt	jj}|d||j	
||j	rtj
d|jd|_	d|_d|_|jD]\}\}}||jddddS#1swxYwYdS)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&&&&&&
Z	$	$}(F4=#*#:#<#<#DFFFt			!!'***<((**<$&;<<<$$&&&# $
!%*.+*;*;*=*=&C$EGGGG!!###!	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$sDD//D36D3c,|jD]\}\}}||j|j|j|jd|_d|_d|_dSr
)	r9rTrUr<_at_fork_reinitr=rr>r?)rrNrrs    rrAz_ResourceSharer._afterforkos"&+"3"3"5"5		C$EGGGG
""$$$>%N  """
rc"ddlm}tjd|t	jj|_|jj|_	tj|j}d|_
|||_dS)Nr)Listenerz0starting listener and thread for sending handlesrG)targetT)rIrZrdebugrrJrHr=rMr>r:Thread_servedaemonstartr?)rrZts   rrCz_ResourceSharer._startzs((((((
EFFF!'*A*C*C*KLLL.
DK000				rcDttdr0tjtjtj		|j5}|}|	ddddS|\}}|j	|\}}	||||n#|wxYw	dddn#1swxYwYn9#tjstj
tjYnxYw)Npthread_sigmask)hasattrsignalrc	SIG_BLOCK
valid_signalsr=acceptrecvr9popr
is_exitingsys
excepthookexc_info)rrmsgrNdestination_pidrrs       rr^z_ResourceSharer._serveso6,--	M"6#3V5I5K5KLLL	4

4^**,,	 ))++C{	 	 	 	 	 	 	 	 ,/(C"&+//#"6"6KD% T?333	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
4((4NCLNN33	4sTC(!C9C("C)C5CCCC(C  C(#C $C((4Dr
)r%r&r'r(rrstaticmethodrrrArCr^r)rrr6r6=s88CCC...\$$$$*						44444rr6)r1rer!rlr:rcontextrr__all__platformobjectr	r*r6rrr)rr<module>rwsE
			











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