python (3.11.7)

(root)/
lib/
python3.11/
multiprocessing/
__pycache__/
managers.cpython-311.pyc

eCtgdZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZmZddlmZdd	lmZdd
lmZddlmZ	ddlmZd
Zedn
#e$rdZYnwxYwdZejejeddDZdZeD]Zejee[[GddeZ difdZ!dZ"Gdde#Z$dZ%dZ&GddeZ'Gdd eZ(e
j)e
j*fe
j+e
j,fd!Z-Gd"d#eZ.Gd$d%e/Z0Gd&d'eZ1d(Z2ifd)Z3		dcd*Z4Gd+d,eZ5Gd-d.eZ6ddd/Z7Gd0d1e1Z8Gd2d3e1Z9Gd4d5e9Z:Gd6d7e1Z;Gd8d9e1Z<Gd:d;e1Z=Gd<d=e1Z>e3d>d?Z?Gd@dAe?Z@e3dBdCZAdDdEieA_Be3dFdGZCe3dHdIZDdJdJdJdEdEdKeD_BGdLdHeDZEGdMdNe.ZFeFdOejGeFdPejGeFdQejHe;eFdRejIe9eFdSejJe9eFdTejKe9eFdUejLe9eFdVejMe:eFdWejNe<eFdXejOeEeFdYePe@eFdZeQeAeFd.e6e>eFd[e7eCeFd,e5e=eFdEe8d\eFdJd]er+Gd^d_ZRGd`dae'ZSGdbde.ZTdSdS)e)BaseManagerSyncManager	BaseProxyTokenN)getpid)
format_exc)
connection)	reductionget_spawning_popenProcessError)pool)process)util)get_context)
shared_memoryTSharedMemoryManagerFcPtj|j|ffSN)arraytypecodetobytes)as L/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/multiprocessing/managers.pyreduce_arrayr/s;QYY[[111c	Xg|]'}tti|(S)typegetattr.0names  r
<listcomp>r$3s3
N
N
NDd$72t$$&&''
N
N
Nr)itemskeysvaluesc0tt|ffSr)listobjs rrebuild_as_listr,4s$s))rc.eZdZdZdZdZdZdZdZdS)rz3
    Type to uniquely identify a shared object
    typeidaddressidc2|||c|_|_|_dSrr.)selfr/r0r1s    r__init__zToken.__init__Ds06,dlDGGGrc*|j|j|jfSrr.r3s r__getstate__zToken.__getstate__GsT\4733rc0|\|_|_|_dSrr.r3states  r__setstate__zToken.__setstate__Js/4,dlDGGGrcP|jjd|jd|jd|jdS)Nz(typeid=z
, address=z, id=))	__class____name__r/r0r1r6s r__repr__zToken.__repr__Ms4'''dlllDGGGM	MrN)	r?
__module____qualname____doc__	__slots__r4r7r;r@rrrrr>si,IEEE444555MMMMMrrrc|||||f|\}}|dkr|St||)zL
    Send a message to manager using connection `c` and return response
    #RETURN)sendrecvconvert_to_error)cr1
methodnameargskwdskindresults       rdispatchrPUsPFFB
D$'(((6688LD&y
4
(
((rc	8|dkr|S|dvrmt|ts1td||t	||dkrtd|zSt|St
d|S)N#ERROR)
#TRACEBACK#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrTzUnserializable message: %s
zUnrecognized message type {!r})
isinstancestr	TypeErrorformatrRemoteError
ValueError)rNrOs  rrIrI_sx
	
2	2	2&#&&	1@GGD$v,,0011
1$$$=FGGGv&&&:AA$GGHHHrceZdZdZdS)rYcBdt|jdzdzS)NzM
---------------------------------------------------------------------------
rzK---------------------------------------------------------------------------)rVrLr6s r__str__zRemoteError.__str__os $s49Q<'8'886ABrN)r?rArBr]rrrrYrYns(CCCCCrrYcg}t|D]6}t||}t|r||7|S)z4
    Return a list of names of methods of `obj`
    )dirr callableappend)r+tempr#funcs    rall_methodsrdvsSDCsD!!D>>	KKKrc4dt|DS)zP
    Return a list of names of methods of `obj` which do not start with '_'
    c*g|]}|ddk|S)r_rr!s  rr$z"public_methods.<locals>.<listcomp>s!@@@TaCDr)rdr*s rpublic_methodsrhs!A@[--@@@@rceZdZdZgdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ee
edZd
ZdZdZdZdZdZdZdZdZdS)ServerzM
    Server class which runs in a process controlled by a manager object
    )	shutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefct|ts0td|t	|||_t
j||_t|\}}||d|_
|j
j|_ddi|_i|_
i|_tj|_dS)Nz&Authkey {0!r} is type {1!s}, not bytes)r0backlog0Nr)rUbytesrWrXrregistryrAuthenticationStringauthkeylistener_clientlistenerr0	id_to_objid_to_refcountid_to_local_proxy_obj	threadingLockmutex)r3rzr0r|
serializerListenerClients       rr4zServer.__init__s'5))	-8??T']],,--
-!
3G<<*:6&!"===
},z* %'"^%%


rc^tj|_|tj_	tj|j}d|_|		|j
s3|jd|j
3n#ttf$rYnwxYwtjtjkr@t#jdtjt_tjt_tjddS#tjtjkr@t#jdtjt_tjt_tjdwxYw)z(
        Run the server forever
        )targetTr	zresetting stdout, stderrrN)rEvent
stop_eventrcurrent_process_manager_serverThreadaccepterdaemonstartis_setwaitKeyboardInterrupt
SystemExitsysstdout
__stdout__rdebug
__stderr__stderrexit)r3rs  r
serve_foreverzServer.serve_foreversP$/++48!!1	 't}===H"HONN
/0022,O((+++/0022,%z2



zS^++
5666 ^
 ^
HQKKKKK	zS^++
5666 ^
 ^
HQKKKKs15D<(AB54D<5C	D<C		D<<A0F,c		|j}n#t$rY(wxYwtj|j|f}d|_|c)NTrrL)r~acceptOSErrorrrhandle_requestrr)r3rJts   rrzServer.accepterst	
M((**



 (;1$GGGAAH
GGIII	s
**cd}	tj||jtj||j|}|\}}}}||jvs
Jd|zt
||}	||g|Ri|}d|f}	n@#t$rdtf}	Yn$wxYw#t$rdtf}	YnwxYw	|	|	dS#t$r}
	|	dtfn#t$rYnwxYwtjd|	tjd|tjd|
Yd}
~
dSd}
~
wwxYw)Nz%r unrecognizedrFrSzFailure to send message: %rz ... request was %r ... exception was %r)r
deliver_challenger|answer_challengerHpublicr 	ExceptionrrGrinfo)r3rJrequestignorefuncnamerLrMrcrOmsges           r_handle_requestzServer._handle_requests	*(DL999'4<888ffhhG+2(FHdDt{***,=,H***4**D
*a/$///$//!&)
3
3
3#Z\\2
3	/	/	/.CCC	/		2
FF3KKKKK	2	2	2
jll34444



I3S999I+W555I-q111111111	2s[A5B+:BB('B(+CCC##
E,.#DE'
DE'DAE''E,c	||n#t$rYnwxYw|dS#|wxYw)z)
        Handle a new connection
        N)rrcloser3conns  rrzServer.handle_requestsc	  &&&&			D	
JJLLLLLDJJLLLLs>
%>%>AcBtjdtjj|j}|j}|j}|j	s	dx}}|}|\}}}	}
	||\}}}n:#t$r-}
	|j|\}}}n#t$r|
wxYwYd}
~
nd}
~
wwxYw||vr%td|dt|d|t||}	||	i|
}|o||d}|r7||||\}}t#||j|}d||ff}n d|f}n#t&$r}d|f}Yd}~nd}~wwxYwn#t$rX|d	t)f}nB	|j|}|||||g|	Ri|
}d|f}n #t&$rd	t)f}YnwxYwYnit,$rBtjd
tjjt/jdYnt&$rd	t)f}YnwxYw		||n)#t&$r|dt)fYnwxYwn#t&$r}tjd
tjjtjd|tjd||t/jdYd}~nd}~wwxYw|j	dSdS)zQ
        Handle requests from the proxies in a particular process/thread
        z$starting server thread to service %rNzmethod z of z object is not in exposed=#PROXYrFrRrSz$got EOF -- exiting thread serving %rrrTzexception in thread serving %rz ... message was %rrr	)rrrcurrent_threadr#rHrGrrrKeyErrorrAttributeErrorrr getrlrr0rrfallback_mappingEOFErrorrrrr)r3rrHrGrrKr+ridentrLrMexposed	gettypeidkefunctionresr/ridentrexposedtokenrr
fallback_funcrOs                        rserve_clientzServer.serve_clientsD	
9+--2	4	4	4yyN	/((**D	5
3#''
S$&&07-z4!.7.>+C))!!!! 6u=0Wii#!!! !'0iiii!W,,(.#T#YYYY9
#3
33/"(D1D11C'J9==T+J+JF/+/;;tVS+I+I( %fdlF C C'(E):;(#.!(((#Q-CCCCCC("
;
;
;%'6CC;(,(=j(I
!. $s"59"""=A"" )&1$;;;+Z\\:;



A$355:<<<
3
3
3#Z\\2
3
<DIIII <<<D+Z\\:;;;;;<


	:!0227999	/555	11555



}/((**D	D	D	D	D	sE-2A?>E-?
B6
BB1
B))B1,E-1B66<E-3E;AE-
E)E$E-$E))E--H4 F,+H4,G	H4G		H4AH4H43H49II/#I+(I/*I++I//
L9A=K;;Lc|Srrr3rrr+s    rfallback_getvaluezServer.fallback_getvalue?s
rc t|SrrVrs    rfallback_strzServer.fallback_strBs
3xxrc t|Sr)reprrs    r
fallback_reprzServer.fallback_reprEsCyyr)r]r@	#GETVALUEcdSrrr3rJs  rrqzServer.dummyNsrc
|j5g}t|j}||D]W}|dkrO|d|d|j|dt
|j|dddXd|cdddS#1swxYwYdS)	zO
        Return some info --- useful to spot problems with refcounting
        rwz  z:       refcount=z
    rNK
)	rr)rr&sortrarVrjoin)r3rJrOr&rs     rrozServer.debug_infoQs%
Z		%		%F+002233DIIKKK
H
HC<<MMM#(55$*=e*D*D*D#&t~e'<Q'?#@#@"#E#E#GHHH99V$$		%		%		%		%		%		%		%		%		%		%		%		%		%		%		%		%		%		%sB+CCCc*t|jS)z*
        Number of shared objects
        )lenrrs  rrpzServer.number_of_objectsas
4&'''rc	tjd|dn#ddl}|YnxYw|jdS#|jwxYw)z'
        Shutdown this process
        z!manager received shutdown messagerFNrN)rrrG	traceback	print_excrset)r3rJrs   rrkzServer.shutdownhs	"J:;;;
FF$%%%%	"!!!!!O!!!!!DO!!!!s),A&AA&&Bc	|j5|j|\}}}}|-|st|dkrtd|d}	n||i|}	|t	|	}|dt|ts0td|t|t|t|z}dt|	z}
tj
d||
|	t||f|j|
<|
|jvr
d|j|
<dddn#1swxYwY|||
|
t%|fS)z>
        Create a new shared object and return its id
        Nr	z4Without callable, must have one non-keyword argumentrz,Method_to_typeid {0!r}: type {1!s}, not dictz%xz&%r callable returned object with id %r)rrzrrZrhrUdictrWrXrr)r1rrrrrrrtuple)r3rJr/rLrMr`rmethod_to_typeid	proxytyper+rs           rrlz
Server.createusZ	/	/mF+
;Hg/PCIINN$NPPP1gh---(--+!"2D99G#FMM,d3C.D.DFFGGGw--$/?*@*@@2c77NEJ?OOO%(#g,,8H$IDN5!D///-.#E*7	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/:	
AueGnn$$sDD**D.1D.cLt|j|jdS)zL
        Return the methods of the shared object indicated by token
        r	)rrr1)r3rJrs   rrnzServer.get_methodss T^EH-a0111rc|tj_|d||dS)z=
        Spawn a new thread to serve this connection
        rN)rrr#rGr)r3rJr#s   rrmzServer.accept_connectionsB+/	 ""'	 !!!!rcD|j5	|j|xxdz
cc<nh#t$r[}||jvrFd|j|<|j||j|<|j|\}}}tjd|n|Yd}~nd}~wwxYwddddS#1swxYwYdS)Nr	z&Server re-enabled tracking & INCREF %r)rrrrrrr)r3rJrrr+rrs       rrrz
Server.increfs(
Z		
#E***a/****



D66612D'.259N5).2nU.C+C)JGOOOOHPOOOO
																		s7B B
BAB;BBBBBc	,||jvr ||jvrtjd|dS|j5|j|dkr:td||j||j||j|xxdzcc<|j|dkr|j|=dddn#1swxYwY||jvrId|j|<tjd||j5|j|=ddddS#1swxYwYdSdS)NzServer DECREF skipping %rrz+Id {0!s} ({1!r}) has refcount {2:n}, not 1+r	)NrNzdisposing of obj with id %r)rrrrrAssertionErrorrXr)r3rJrs   rrsz
Server.decrefs+++T///J2E:::F
Z	/	/"5)Q..$AHHt~e4+E244555
&&&!+&&&"5)Q..'.	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/+++%5DN5!J4e<<<
*
*N5)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*,+s$A:B77B;>B;1	DDDN)r?rArBrCrr4rrrrrrrrrrqrorprkrlrnrmrrrsrrrrjrjs]NNNF&&&$,222<


OOOb %




%%% (((""""%"%"%H222$*****rrjc eZdZdgZdZdZdZdS)Statevaluerr	N)r?rArBrDINITIALSTARTEDSHUTDOWNrrrrrs$	IGGHHHrr)pickle	xmlrpclibceZdZdZiZeZ		ddddZdZdZ	dd
Z
e	ddZdZ
dd
ZdZdZdZdZedZedZe		ddZdS)rz!
    Base class for managers
    Nrg?)shutdown_timeoutcF|tjj}||_tj||_t
|_tj|j_	||_
t|\|_|_
|p
t|_||_dSr)rrr|_addressr{_authkeyr_staterr_serializerr}	_Listener_Clientr_ctx_shutdown_timeout)r3r0r|rctxrs      rr4zBaseManager.__init__s?-//7G
4W==
gg!M%'6z'B$(;==	!1rc~|jjtjkr~|jjtjkrtd|jjtjkrtdtd|jjt|j	|j
|j|jS)zX
        Return server object with serve_forever() method and address attribute
        Already started serverManager has shut downUnknown state {!r})
rrrrrr
rrXrj	_registryrrrr6s r
get_serverzBaseManager.get_servers;
--{ EM11"#;<<<"en44"#:;;;"(//0ABBDDDdndmmT%577	7rct|j\}}||j|j}t	|ddt
j|j_dS)z>
        Connect manager object to the server process
        r|Nrq)	r}rrrrPrrrr)r3rrrs    rconnectzBaseManager.connectsR+4+;<&vdmT];;;tW%%%!Mrrc
b|jjtjkr~|jjtjkrtd|jjtjkrtdtd|jj|t|stdtjd\}}|j
t|j|j|j|j|j|||f|_d	d
|jjD}t|jdz|z|j_|j|||_|tj|j_t9j|t|j|j|j|j|j|j|j fd
|_!dS)z@
        Spawn a server process for this manager object
        rrrNzinitializer must be a callableF)duplexr:c34K|]}t|VdSrr)r"is  r	<genexpr>z$BaseManager.start.<locals>.<genexpr>1s(AAAQAAAAAAr-rrLexitpriority)"rrrrrr
rrXr`rWr
PiperProcessr_run_serverrrrr_processr	_identityr?r#rrrHrFinalize_finalize_managerrrrk)r3initializerinitargsreaderwriterrs      rrzBaseManager.starts;
--{ EM11"#;<<<"en44"#:;;;"(//0ABBDDD"8K+@+@"<===$666	))::).$-"FKC*
AA)@AAAAA!$ZZ0C7%?

	


"M
$t**.-
t{, 68	


rcNtjtjtj||||||||}||j|tjd|j|	dS)z@
        Create a server, report its address and run it
        Nzmanager serving at %r)
signalSIGINTSIG_IGN_ServerrGr0rrrr)	clsrzr0r|rrrrservers	         rrzBaseManager._run_serverCs	
fmV^444"K""XwDD	FN###	
	)6>:::rcN|jjtjks
Jd||j|j}	t|dd|f|z|\}}|n#|wxYwt||j||fS)zP
        Create a new shared object; return the token and exposed tuple
        zserver not yet startedrNrl)
rrrrrrrrPrr)r3r/rLrMrr1rs       r_createzBaseManager._createZs{ EM1113K111||DM4=|AA	"4x&4NNKBJJLLLLDJJLLLLVT]B//88sA66Bc|j<|j||jsd|_dSdSdS)zC
        Join the manager process (if it has been spawned)
        N)rris_aliver3timeouts  rrzBaseManager.joinfsU=$Mw'''=))++
% $


%$
%
%rc||j|j}	t|dd|S#|wxYw)zS
        Return some info about the servers shared objects and connections
        rNrorrrrPrrs  r_debug_infozBaseManager._debug_infoosR||DM4=|AA	D$55JJLLLLDJJLLLLAAc||j|j}	t|dd|S#|wxYw)z5
        Return the number of shared objects
        rNrpr*rs  r_number_of_objectszBaseManager._number_of_objectsysS||DM4=|AA	D$(;<<JJLLLLDJJLLLLr,c|jjtjkr||jjtjkr~|jjtjkrt
d|jjtjkrt
dt
d|jj|S)NzUnable to start serverrr)	rrrrrrr
rrXr6s r	__enter__zBaseManager.__enter__s;
--JJLLL;
--{ EM11"#;<<<"en44"#:;;;"(//0ABBDDDrc.|dSr)rkr3exc_typeexc_valexc_tbs    r__exit__zBaseManager.__exit__s

rc|jr,tjd	|||}	t|dd|n#|wxYwn#t
$rYnwxYw|j||jrtjdt|drutjd|j|j||jr2tjd	|j	|jtj|_	tj|=dS#t$rYdSwxYw)
zQ
        Shutdown the manager process; will be registered as a finalizer
        z#sending shutdown message to managerrNrk)r(zmanager still alive	terminatez'trying to `terminate()` manager processz#manager still alive after terminate)r&rrrPrrrhasattrr8killrrrr_address_to_localr)rr0r|r:rrrs       rrzBaseManager._finalize_managers7	'I;<<<
ww888!T4444JJLLLLDJJLLLLL




GL!12222w!!	
'	/0007K00'IGHHH%G%''' GL)9::::'w'))'	"GHHH$$n	+G444			DD	s:
A4AA4A00A44
BB
E
E,+E,c|jSr)rr6s rr0zBaseManager.addresss
}rTcd|jvr|j|_t|pt	dd}|pt	dd}|rmt|D]K\}}t|tus
Jd|zt|tus
Jd|zL|||f|j<|r fd}	|	_	t||	dSdS)z9
        Register a typeid with the manager type
        rN	_exposed__method_to_typeid_z%r is not a stringctjd|jg|Ri|\}}||j||j|}||j|j}t|dd|jf|S)Nz)requesting creation of a shared %r objectmanagerr|rrrs)	rrr$rrrr0rPr1)	r3rLrMrexpproxyrrr/s	       rrbz"BaseManager.register.<locals>.temps
FOOO)T\&@4@@@4@@
s!	4+T M3||EM4=|IItX{;;;r)__dict__rcopy	AutoProxyr r)r%rrVr?setattr)
r!r/r`rrr
create_methodkeyrrbs
 ` `      rregisterzBaseManager.registersVcl**M..00CM!IBWYTBB+J"9.BDII		H"#3#9#9#;#;<<
H
H
UCyyC''')=)C'''E{{c)))+?%+G))))
g/!
f	'	
	
	
	
	
	
#DMC&&&&&	'	'r)NNrNrxr)NNNNT)r?rArBrCrrjr r4rrrclassmethodrr$rr+r.r0r6staticmethodrpropertyr0rKrrrrrscIG>F2/222222
7
7
7***))))V/1[,
9
9
9%%%%  \ DXEI6:%'%'%'[%'%'%'rrceZdZdZdZdS)ProcessLocalSetc2tj|ddS)Nc*|Sr)clearr*s r<lambda>z*ProcessLocalSet.__init__.<locals>.<lambda>s399;;r)rregister_after_forkr6s rr4zProcessLocalSet.__init__s '>'>?????rc$t|dfSrx)rr6s r
__reduce__zProcessLocalSet.__reduce__sDzz2~rN)r?rArBr4rWrrrrPrPs5@@@rrPceZdZdZiZejZ		ddZdZ	difdZ
d	Zd
Ze
dZdZd
ZdZdZdZdS)rz.
    A base for proxies of shared objects
    NTFctj5tj|jd}|5tjtf}|tj|j<dddn#1swxYwY|d|_|d|_	||_
|j
j|_||_
||_t|d|_||_|t%j||_n6|j
|j
j|_nt%jj|_|r|tj|tjdS)Nrr	)r_mutexr;rr0rForkAwareLocalrP_tls_idset_tokenr1_id_managerrr}r_owned_by_managerrr{rrr|_increfrU_after_fork)	r3rrrBr|rrr
manager_owned	tls_idsets	         rr4zBaseProxy.__init__s

	G	G!377
tLLI  /11?3D3DD	=F	+EM:		G	G	G	G	G	G	G	G	G	G	G	G	G	G	GaL	
 l;>
%&z215"/#8AADMM
]
& M2DMM#355=DM	LLNNN y'<=====sAA66A:=A:c\tjdtjj}tjjdkr|dtjjzz
}||jj	|j
}t|dd|f||j_
dS)Nzmaking connection to manager
MainThread|rrm)rrrrr#rrrr^r0rrPr\r
)r3r#rs   r_connectzBaseProxy._connect s
1222&((-#%%*l::C)244999D||DK/|GGt04':::#	rrc	|jj}n[#t$rNtjdtjj||jj}YnwxYw|	|j
|||f|\}}|dkr|S|dkr|\}}|jj
|jd}	|jj|_|	||j|j|j|}
||j|j}t)|dd|jf|
St-||)	zV
        Try to call a method of the referent and return a copy of the result
        z#thread %r does not own a connectionrFrrArNrs)r\r
rrrrrr#rirGr_rHr`rr/r^r0rrrrPr1rI)r3rKrLrMrrNrOrrrrDs           r_callmethodzBaseProxy._callmethod)sV	(9'DD	(	(	(J< /116
8
8
8MMOOO9'DDD		(	
		48Zt4555yy{{f9M
X

#NGU
/=bAI K/EMIt'
wE<<
t}<EEDT4EH;777LtV,,,sAA'&A'c,|dS)z9
        Get a copy of the value of the referent
        rrlr6s r	_getvaluezBaseProxy._getvalueGs,,,rc
|jr!tjd|jjdS||jj|j}t|dd|j	ftjd|jj|j
|j	|jo|jj
}tj|tj|j|j||j|j
|jfd|_dS)Nz%owned_by_manager skipped INCREF of %rrrrz	INCREF %r
r)rarrr^r1rr0rrPr_r]addr`rrr_decrefr\_close)r3rr:s   rrbzBaseProxy._increfMs!	J>OOOF||DK/|GGtX{333
;///!!!
6$-"6m)#+t}e)T[$,8	rc8||j||jtjkrr	tjd|j||j|}t|dd|jfnF#t$r}tjd|Yd}~n"d}~wwxYwtjd|j|sXt|drJtjdtjj
|j|`dSdSdS)Nz	DECREF %rrrsz... decref failed %sz%DECREF %r -- manager already shutdownr
z-thread %r has no more proxies so closing conn)discardr1rrrrrr0rPrr9rrr#r
r)rr|r:tlsidsetrrrs        rrszBaseProxy._decrefas?


eh=EK5=88
6
;111wu}g>>>tX{;;;;
6
6
6
1155555555
6
J>III	l33	JF /116
8
8
8N  """					sAA88
B!BB!cd|_	|dS#t$r"}tjd|zYd}~dSd}~wwxYw)Nzincref failed: %s)r`rbrrr)r3rs  rrczBaseProxy._after_forkzsf
	/LLNNNNN	/	/	/I)A-.........	/s
AAAci}t
|j|d<t|ddr&|j|d<tt
|j|j|ffStt||j|j|ffS)Nr|_isautoFr)	rrr r>RebuildProxyrGr^rrr3rMs  rrWzBaseProxy.__reduce__s+"mDO4E**	G"nDO T-=tDF
F!$ZZd.>EG
Grc*|Sr)ro)r3memos  r__deepcopy__zBaseProxy.__deepcopy__s~~rcddt|j|jjt	|fzS)Nz<%s object, typeid %r at %#x>)rr?r^r/r1r6s rr@zBaseProxy.__repr__s/.T

#T[%7DBC	Crc	|dS#t$rt|dddzcYSwxYw)zV
        Return representation of the referent (or a fall-back if that fails)
        r@Nrkz; '__str__()' failed>)rlrrr6s rr]zBaseProxy.__str__sV	=##J///	=	=	=::crc?%<<<<<	=s$>>NNNTF)r?rArBrCr;rForkAwareThreadLockrZr4rirlrorbrMrsrcrWrr@r]rrrrrs
%T
%
'
'F26HM'>'>'>'>R$$$,.B----<---(\0///GGG   CCC=====rrcttjdd}|rW|j|jkrGt	jd|d|d<|j|jvr|j|j|j|j<|	ddo"ttjdd}|||fd|i|S)	z5
    Function used for unpickling proxy objects.
    rNz*Rebuild a proxy owned by manager, token=%rTrdrr_inheritingF)
r rrr0rrr1rrpop)rcrrrMr"rrs      rr|r|sW,..0A4
H
HF
+&.EM11
?GGG $_86777 *
(2	
4  	EG+--}eDDD4z99&9D999rct|}	|||fS#t$rYnwxYwi}|D]}td|d|d|t|tf|}||_||||f<|S)zB
    Return a proxy type whose methods are given by `exposed`
    zdef z:(self, /, *args, **kwds):
        return self._callmethod(z
, args, kwds))rrexecrrr>)r#r_cachedicmeth	ProxyTypes      r
MakeProxyTypersGnnG
tWo&&




CHH6:ddDDDBCF	H	H	H	HTI<--I!I'FD'?s	
((ct|d}|T||j|}	t|dd|f}|n#|wxYw|	||j}|tjj}td|j	z|}	|	||||||}
d|
_
|
S)z*
    Return an auto-proxy for `token`
    r	Nrrnz
AutoProxy[%s])rBr|rrrdT)r}r0rPrrrrr|rr/r{)rrrBr|rrrrdrrrrDs           rrGrGs
j)!,Gwu}g666	tT=5(CCGJJLLLLDJJLLLL7.")++3o<gFFIIeZ'#=
B
B
BEEMLsAA'ceZdZdZdZdS)	Namespacec:|j|dSr)rEupdater}s  rr4zNamespace.__init__s
T"""""rc2t|j}g}|D]4\}}|ds||d|5||jjdd|dS)Nrg=(, r=)	r)rEr%
startswithrarr>r?r)r3r%rbr#rs     rr@zNamespace.__repr__sT]((**++ 	5	5KD%??3''
5tttUU3444		>222DIIdOOOODDrN)r?rArBr4r@rrrrrs7###EEEEErrc@eZdZddZdZdZdZeeeZdS)ValueTc"||_||_dSr)	_typecode_value)r3rrlocks    rr4zValue.__init__s!rc|jSrrr6s rrz	Value.gets
{rc||_dSrrr3rs  rrz	Value.sets
rcPt|jd|jd|jdS)Nrrr=)rr?rrr6s rr@zValue.__repr__s*!$ZZ000$...$+++NNrNT)	r?rArBr4rrr@rNrrrrrrscOOOHS#EEErrc,tj||Sr)r)rsequencers   rArrayrs;x***rc0eZdZdZdZdZdZdZdZdS)
IteratorProxy)__next__rGthrowrc|Srrr6s r__iter__zIteratorProxy.__iter__rc.|d|S)Nrrnr3rLs  rrzIteratorProxy.__next__s
D111rc.|d|S)NrGrnrs  rrGzIteratorProxy.sends---rc.|d|S)Nrrnrs  rrzIteratorProxy.throw...rc.|d|S)Nrrnrs  rrzIteratorProxy.closerrN)	r?rArBr>rrrGrrrrrrr
sd6I222...////////rrc,eZdZdZddZdZdZdZdS)	
AcquirerProxy)acquirereleaseTNc@||fn||f}|d|SNrrn)r3blockingr(rLs    rrzAcquirerProxy.acquires,%o{{Hg3F	4000rc,|dSNrrnr6s rrzAcquirerProxy.release	***rc,|dSrrnr6s rr0zAcquirerProxy.__enter__rrc,|dSrrnr2s    rr6zAcquirerProxy.__exit__!rr)TN)r?rArBr>rrr0r6rrrrrsZ&I1111+++++++++++rrc0eZdZdZddZd	dZdZddZdS)
ConditionProxy)rrrnotify
notify_allNc0|d|fSNrrnr's  rrzConditionProxy.wait'
333rr	c0|d|fS)Nrrn)r3ns  rrzConditionProxy.notify)s1$///rc,|dS)Nrrnr6s rrzConditionProxy.notify_all+s---rc|}|r|S|tj|z}nd}d}|s@||tjz
}|dkrn!|||}|@|S)Nr)time	monotonicr)r3	predicater(rOendtimewaittimes      rwait_forzConditionProxy.wait_for-s	Mn&&0GGGH	!""T^%5%55q==IIhY[[F
	!
rr)r	)r?rArBr>rrrrrrrrr%sdFI44440000...rrc,eZdZdZdZdZdZddZdS)
EventProxy)rrrSrc,|dS)Nrrnr6s rrzEventProxy.is_setBs)))rc,|dSNrrnr6s rrzEventProxy.setD&&&rc,|dS)NrSrnr6s rrSzEventProxy.clearF(((rNc0|d|fSrrnr's  rrzEventProxy.waitHrrr)r?rArBr>rrrSrrrrrr@sZ2I***''')))444444rrcheZdZdZd	dZdZdZedZedZ	edZ
dS)
BarrierProxy)__getattribute__rabortresetNc0|d|fSrrnr's  rrzBarrierProxy.waitNrrc,|dS)Nrrnr6s rrzBarrierProxy.abortPrrc,|dS)Nrrnr6s rrzBarrierProxy.resetRrrc.|ddS)Nr)partiesrnr6s rrzBarrierProxy.partiesTs 2LAAArc.|ddS)Nr)	n_waitingrnr6s rrzBarrierProxy.n_waitingWs 2NCCCrc.|ddS)Nr)brokenrnr6s rrzBarrierProxy.brokenZs 2K@@@rr)r?rArBr>rrrrNrrrrrrrrLs>I4444))))))
BBXB
DDXD
AAXAAArrc$eZdZdZdZdZdZdS)NamespaceProxy)r__setattr____delattr__c|ddkrt||St|d}|d|fS)Nrrgrlr)objectrr3rJ
callmethods   r__getattr__zNamespaceProxy.__getattr__asOq6S==**4555,,T=AA
z,sf555rc|ddkrt|||St|d}|d||fS)Nrrgrlr)rrr)r3rJrrs    rrzNamespaceProxy.__setattr__fsRq6S==%%dC777,,T=AA
z-#u666rc|ddkrt||St|d}|d|fS)Nrrgrlr)rrrrs   rrzNamespaceProxy.__delattr__ksNq6S==%%dC000,,T=AA
z-#000rN)r?rArBr>rrrrrrrr_sFBI666
777
11111rrcVeZdZdZdZdZeeeZee	j
ZdS)
ValueProxy)rrc,|dS)Nrrnr6s rrzValueProxy.gettrrc0|d|fSrrnrs  rrzValueProxy.setvsx000rN)r?rArBr>rrrNrrLtypesGenericAlias__class_getitem__rrrrrrsWI'''111HS#E#E$677rr
BaseListProxy)__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__racountextendindexinsertrremovereverser__imul__ceZdZdZdZdS)	ListProxyc4|d|f|S)Nrrnrs  r__iadd__zListProxy.__iadd__sE8,,,rc4|d|f|S)Nrrnrs  rrzListProxy.__imul__seX...rN)r?rArBrrrrrr
r
s2rr
	DictProxy)rrrrrrrSrFrr%r&rpopitem
setdefaultrr'rIterator
ArrayProxy)rrr	PoolProxy)applyapply_asyncrimapimap_unorderedrmap	map_asyncstarmap
starmap_asyncr8AsyncResult)rrrrrceZdZdZdZdS)rc|Srrr6s rr0zPoolProxy.__enter__rrc.|dSr)r8r2s    rr6zPoolProxy.__exit__srN)r?rArBr0r6rrrrrs2rceZdZdZdS)ra(
    Subclass of `BaseManager` which supports a number of shared object types.

    The types registered are those intended for the synchronization
    of threads, plus `dict`, `list` and `Namespace`.

    The `multiprocessing.Manager()` function creates started instances of
    this class.
    N)r?rArBrCrrrrrsrrQueue
JoinableQueuerrRLock	SemaphoreBoundedSemaphore	ConditionBarrierPoolr)rr)rrI)rIc@eZdZdZgfdZdZdZdZdZdZ	dZ
d	S)
_SharedMemoryTrackerz+Manages one or more shared memory segments.c"||_||_dSrshared_memory_context_name
segment_names)r3r#r1s   rr4z_SharedMemoryTracker.__init__s.2D+!.Drctjd|dt|j|dS)z6Adds the supplied shared memory block name to tracker.zRegister segment  in pid N)rrrr1rar3segment_names  rregister_segmentz%_SharedMemoryTracker.register_segmentsDJM<MM688MMNNN%%l33333rctjd|dt|j|tj|}||dS)zCalls unlink() on the shared memory block with the supplied name
            and removes it from the list of blocks being tracked.zDestroy segment r3N)	rrrr1r	rSharedMemoryrunlink)r3r5segments   rdestroy_segmentz$_SharedMemoryTracker.destroy_segmentss
JL,LL&((LLMMM%%l333#0>>GMMOOONNrcT|jddD]}||dS)z<Calls destroy_segment() on all tracked shared memory blocks.N)r1r;r4s  rr9z_SharedMemoryTracker.unlinks> $ 2111 5
3
3$$\2222
3
3rctjd|jjdt	|dS)NzCall z.__del__ in )rrr>r?rr9r6s r__del__z_SharedMemoryTracker.__del__s=JNt~6NNFHHNNOOOKKMMMMMrc|j|jfSrr/r6s rr7z!_SharedMemoryTracker.__getstate__s3T5GHHrc|j|dSr)r4r9s  rr;z!_SharedMemoryTracker.__setstate__sDM5!!!!rN)r?rArBrCr4r6r;r9r>r7r;rrrr-r-s55/1	/	/	/	/	4	4	4
				3	3	3
				I	I	I	"	"	"	"	"rr-cJeZdZejgdzZdZdZdZdZdZ	dZ
dS)	SharedMemoryServer)
track_segmentrelease_segment
list_segmentsc"tj|g|Ri||j}t|trtj|}td|dt|_	tjdtdS)Nshm_rgz"SharedMemoryServer started by pid )rjr4r0rUryosfsdecoder-rshared_memory_contextrr)r3rLkwargsr0s    rr4zSharedMemoryServer.__init__sOD242226222lG'5))
/+g..$%@G%@%@fhh%@%@AA
&JFFHHFFGGGGGrct|j|ddr
|j|d<tj|||g|Ri|S)zCreate a new distributed-shared object (not backed by a shared
            memory block) and return its id to be used in a Proxy Object.rk_shared_memory_proxyrJ)r9rzrJrjrl)r3rJr/rLrKs     rrlzSharedMemoryServer.create	sVt}V,R02HII
M262L./=q&B4BBB6BBBrcj|jt||S)zACall unlink() on all tracked shared memory, terminate the Server.)rJr9rjrkrs  rrkzSharedMemoryServer.shutdowns+&--///??4+++rc:|j|dS)z?Adds the supplied shared memory block name to Server's tracker.N)rJr6r3rJr5s   rrCz SharedMemoryServer.track_segments&77EEEEErc:|j|dS)zCalls unlink() on the shared memory block with the supplied name
            and removes it from the tracker instance inside the Server.N)rJr;rPs   rrDz"SharedMemoryServer.release_segments!
&66|DDDDDrc|jjS)zbReturns a list of names of shared memory blocks that the Server
            is currently tracking.)rJr1rs  rrEz SharedMemoryServer.list_segments!s-;;rN)r?rArBrjrr4rlrkrCrDrErrrrBrBsFFFG	H	H	H	C	C	C	,	,	,
	F	F	F	E	E	E
	<	<	<	<	<rrBc4eZdZdZeZdZdZdZdZ	dZ
dS)raLike SyncManager but uses SharedMemoryServer instead of Server.

        It provides methods for creating and returning SharedMemory instances
        and for creating a list-like object (ShareableList) backed by shared
        memory.  It also provides methods that create and return Proxy Objects
        that support synchronization across processes (i.e. multi-process-safe
        locks and semaphores).
        ctjdkrddlm}|tj|g|Ri|tj|j	j
dtdS)Nposixr	)resource_trackerz created by pid )rHr#rVensure_runningrr4rrr>r?r)r3rLrKrVs    rr4zSharedMemoryManager.__init__3sw'!!/..... //111 7777777J$.1MM688MMNNNNNrcdtj|jjdt	dS)Nz.__del__ by pid )rrr>r?rr6s rr>zSharedMemoryManager.__del__?s/J$.1MM688MMNNNNNrc|jjtjkr~|jjtjkrtd|jjtjkrtdtd|jj||j	|j
|j|jS)z@Better than monkeypatching for now; merge into Server ultimatelyz"Already started SharedMemoryServerz!SharedMemoryManager has shut downr)
rrrrrr
rrXr rrrrr6s rrzSharedMemoryManager.get_serverBs{ EM11;$
55&'KLLL[&%.88&'JKKK&,33DK4EFFHHH<<
 $
t/?AA
Arc,||j|j5}tjdd|}	t|dd|jfn(#t$r}||d}~wwxYw	dddn#1swxYwY|S)zoReturns a new SharedMemory instance with the specified size in
            bytes, to be tracked by the manager.rNT)rlsizerC)	rrrrr8rPr#
BaseExceptionr9)r3r\rsmsrs     rr8z SharedMemoryManager.SharedMemoryOsdmT]CC
t#0dNNNT438+FFFF$JJLLLGG














Js4B	AB	
A9A44A99B		B
B
c:||j|j5}tj|}	t|dd|jjfn-#t$r }|j	|d}~wwxYw	dddn#1swxYwY|S)zReturns a new ShareableList instance populated with the values
            from the input sequence, to be tracked by the manager.rNrC)
rrrr
ShareableListrPshmr#r]r9)r3rrslrs     rr`z!SharedMemoryManager.ShareableList[sdmT]CC
t"0::T426;.IIII$FMMOOOGJ














Is4BAB
B A;;BBBBN)r?rArBrCrBr r4r>rr8r`rrrrr'sy		%
	O
	O
	O	O	O	O	A	A	A
	
	
	
	
	
	
	
	rrr)U__all__rrrrqueuerrrHrrrrWr
contextrrr
rrrrr	HAS_SHMEMraImportErrorrrK
view_typesr,	view_typerrrPrIrrYrdrhrjrrrXmlListener	XmlClientr}rrrPrr|rrGrrrrrrrrrrrr
rr?r
BasePoolProxyrrr$rrr&r'r(r)r*r+r)rr-rBrrrr<module>rmsA
@
@






				      @@@@@@@@@@*INN())))	III222	5;---
N
N4M
N
N
N
33IIy/2222
zMMMMMFMMM.&(b))))
I
I
ICCCCC)CCC			AAAG*G*G*G*G*VG*G*G*\
F#Z%67):+?@t't't't't'&t't't'tcm=m=m=m=m=m=m=m=f:::*)+,8<7<:
E
E
E
E
E
E
E
E




F


++++/////I///
+
+
+
+
+I
+
+
+]6	4	4	4	4	4	4	4	4AAAAA9AAA&11111Y111&88888888
o0


M+(

	
 	
]<*


k,
!" $$
 
					+			Wek***_ek222Wioz:::VY^];;;Wio}===[)"5}EEE')C"$$$[)"5~FFFY	 1<@@@VTY	222VT9---VT9---WeZ000WeZ000[)^<<<Z=NNN]%888
Q""""""""""""""""J*<*<*<*<*<V*<*<*<Z>>>>>k>>>>>gQQsA88BB