Viewing File: /opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/managers.cpython-35.opt-1.pyc



Yf{@sddddgZddlZddlZddlZddlZddlmZddlmZdd	l	m
Z
dd
l	mZddl	mZddl	m
Z
dd
l	mZddl	mZddl	mZddZejejedddddfDZedek	rJddZxeD]Zejeeq0WGdddeZfiddZddZGdddeZd d!Zd"d#ZGd$d%d%eZGd&d'd'eZ d(e
j!e
j"fd)e
j#e
j$fiZ%Gd*ddeZ&Gd+d,d,e'Z(Gd-ddeZ)d.d/Z*id0d1Z+dddd2d3d4Z,Gd5d6d6eZ-Gd7d8d8eZ.d2d9d:Z/Gd;d<d<e)Z0Gd=d>d>e)Z1Gd?d@d@e1Z2GdAdBdBe)Z3GdCdDdDe)Z4GdEdFdFe)Z5GdGdHdHe)Z6e+dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\fZ7Gd]d^d^e7Z8e+d_dKdLdMdNdRd`dadbdcdddXdddedfdfZ9e+dgdNdMdRfZ:e+dhdidjdkdldmdndodpdqdrdsfZ;djdtdpdtdrdtdldudmduie;_<Gdvdhdhe;Z=Gdwdde&Z>e>jdxej?e>jdyej?e>jdzej@e3e>jd{ejAe1e>jd|ejBe1e>jd}ejCe1e>jd~ejDe1e>jdejEe2e>jdejFe4e>jdejGe=e>jdee8e>jdeHe9e>jd8e.e6e>jd:e/e:e>jd6e-e5e>jdude0dde>jdtdddS)BaseManagerSyncManager	BaseProxyTokenN)time)
format_exc)
connection)context)pool)process)	reduction)util)get_contextcCstj|j|jffS)N)arraytypecodetobytes)ar=/opt/alt/python35/lib64/python3.5/multiprocessing/managers.pyreduce_array%srcCs(g|]}tti|qSr)typegetattr).0namerrr
<listcomp>)s	ritemskeysvaluescCstt|ffS)N)list)objrrrrebuild_as_list+sr!c@sLeZdZdZdZddZddZd	d
ZddZd
S)rz4
    Type to uniquely indentify a shared object
    typeidaddressidcCs!||||_|_|_dS)N)r"r#r$)selfr"r#r$rrr__init__:szToken.__init__cCs|j|j|jfS)N)r"r#r$)r%rrr__getstate__=szToken.__getstate__cCs|\|_|_|_dS)N)r"r#r$)r%staterrr__setstate__@szToken.__setstate__cCs#d|jj|j|j|jfS)Nz %s(typeid=%r, address=%r, id=%r))	__class____name__r"r#r$)r%rrr__repr__CszToken.__repr__N)r"r#r$)	r+
__module____qualname____doc__	__slots__r&r'r)r,rrrrr4scCsN|j||||f|j\}}|dkr;|St||dS)zL
    Send a message to manager using connection `c` and return response
    z#RETURNN)sendrecvconvert_to_error)cr$
methodnameargskwdskindresultrrrdispatchKs
r:cCsN|dkr|S|dkr&t|S|dkr@td|StdSdS)Nz#ERRORz
#TRACEBACKz#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)RemoteError
ValueError)r8r9rrrr3Us
r3c@seZdZddZdS)r;cCs)ddddt|jdddS)N
-Kr)strr6)r%rrr__str__bszRemoteError.__str__N)r+r-r.rArrrrr;asr;cCsIg}x<t|D].}t||}t|r|j|qW|S)z4
    Return a list of names of methods of `obj`
    )dirrcallableappend)r temprfuncrrrall_methodsisrGcCsddt|DS)zP
    Return a list of names of methods of `obj` which do not start with '_'
    cSs&g|]}|ddkr|qS)r_r)rrrrrrxs	z"public_methods.<locals>.<listcomp>)rG)r rrrpublic_methodstsrIc	@seZdZdZdddddddd	d
g	ZddZd
dZddZddZddZ	ddZ
ddZddZdedede
iZ
ddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0S)1ServerzM
    Server class which runs in a process controlled by a manager object
    shutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefcCs||_tj||_t|\}}|d|dd|_|jj|_ddffi|_i|_t	j
|_dS)Nr#Zbacklog0)registryrAuthenticationStringauthkeylistener_clientlistenerr#	id_to_objid_to_refcount	threadingRLockmutex)r%rVr#rX
serializerListenerClientrrrr&s		zServer.__init__cCstj|_|tj_zqtjd|j}d|_|j	y*x#|jj
sq|jjdqOWWntt
fk
rYnXWdtjtjkrtjdtjt_tjt_tjdXdS)z(
        Run the server forever
        targetTrNzresetting stdout, stderrr)r]Event
stop_eventrcurrent_process_manager_serverThreadaccepterdaemonstartis_setwaitKeyboardInterrupt
SystemExitsysstdout
__stdout__rdebug
__stderr__stderrexit)r%rirrr
serve_forevers 	
	
zServer.serve_foreverc
Csgx`y|jj}Wntk
r-wYnXtjd|jd|f}d|_|jqWdS)Nrcr6T)rZZacceptOSErrorr]rhhandle_requestrjrk)r%r4trrrris
	zServer.accepterc'Csud}}}yWtj||jtj||j|j}|\}}}}t||}Wn!tk
rdtf}	YnGXy||||}Wn!tk
rdtf}	Yn
Xd|f}	y|j|	Wntk
rf}
zdy|jdtfWntk
r#YnXt	j
d|	t	j
d|t	j
d|
WYdd}
~
XnX|jdS)z)
        Handle a new connection
        Nz
#TRACEBACKz#RETURNzFailure to send message: %rz ... request was %rz ... exception was %r)r	Zdeliver_challengerXZanswer_challenger2r	Exceptionrr1rinfoclose)r%r4funcnamer9requestignorer6r7rFmsgerrrrys2


#zServer.handle_requestc*Cs%tjdtjj|j}|j}|j}x|jj	s y,d}}|}|\}}}	}
||\}}}||krt
d|t||ft||}
y|
|	|
}Wn1t
k
r}zd|f}WYdd}~XnpX|o|j|d}|re|j|||\}}t||j|}d||ff}nd|f}Wnt
k
r|dkrdtf}n\y8|j|}||||||	|
}d|f}Wn!t
k
rdtf}YnXYnXtk
r7tjdtjjtjd	Yn!t
k
rWdtf}YnXyMy||Wn8t
k
r}z|d
tfWYdd}~XnXWq7t
k
r}zUtjdtjjtjd|tjd
||jtjdWYdd}~Xq7Xq7WdS)zQ
        Handle requests from the proxies in a particular process/thread
        z$starting server thread to service %rNz+method %r of %r object is not in exposed=%rz#ERRORz#PROXYz#RETURNz
#TRACEBACKz$got EOF -- exiting thread serving %rrz#UNSERIALIZABLEzexception in thread serving %rz ... message was %rz ... exception was %rr)rrsr]current_threadrr2r1r[rerlAttributeErrorrrr{getrLrr#rfallback_mappingEOFErrorrprvr|r})r%connr2r1r[r5r ridentr6r7exposedZ	gettypeidZfunctionresrrr"ZridentZrexposedtokenZ
fallback_funcr9rrrserve_clientsl				
	



	
*	
zServer.serve_clientcCs|S)Nr)r%rrr rrrfallback_getvalueszServer.fallback_getvaluecCs
t|S)N)r@)r%rrr rrrfallback_str"szServer.fallback_strcCs
t|S)N)repr)r%rrr rrr
fallback_repr%szServer.fallback_reprrAr,z	#GETVALUEcCsdS)Nr)r%r4rrrrQ.szServer.dummycCs|jg}t|jj}|jxV|D]N}|dkr6|jd||j|t|j|dddfq6Wdj|SWdQRXdS)zO
        Return some info --- useful to spot problems with refcounting
        rUz  %s:       refcount=%s
    %srNr?r=)	r_rr[rsortrDr\r@join)r%r4r9rrrrrrO1s


	
*zServer.debug_infocCst|jdS)z*
        Number of shared objects
        r)lenr[)r%r4rrrrP@szServer.number_of_objectscCsXzCytjd|jdWnddl}|jYnXWd|jjXdS)z'
        Shutdown this process
        z!manager received shutdown message#RETURNNr)rN)rrsr1	traceback	print_excreset)r%r4rrrrrKFs
zServer.shutdowncOs|j|j|\}}}}|dkr<|d}	n|||}	|dkrct|	}|dk	rt|t|}dt|	}
tjd||
|	t||f|j|
<|
|j	krd|j	|
<|j
||
|
t|fSWdQRXdS)z>
        Create a new shared object and return its id
        Nrz%xz&%r callable returned object with id %r)r_rVrIrr$rrsrr[r\rRtuple)r%r4r"r6r7rCrmethod_to_typeid	proxytyper rrrrrLSs 


z
Server.createcCst|j|jdS)zL
        Return the methods of the shared object indicated by token
        r)rr[r$)r%r4rrrrrNvszServer.get_methodscCs-|tj_|jd|j|dS)z=
        Spawn a new thread to serve this connection
        #RETURNN)rN)r]rrr1r)r%r4rrrrrM|s
zServer.accept_connectioncCs&|j|j|d7<WdQRXdS)Nr)r_r\)r%r4rrrrrRs
z
Server.increfcCs]|jM|j|d8<|j|dkrR|j|=|j|=tjd|WdQRXdS)Nrrzdisposing of obj with id %r)r_r\r[rrs)r%r4rrrrrSs

z
Server.decrefN)r+r-r.r/Zpublicr&rwriryrrrrrrQrOrPrKrLrNrMrRrSrrrrrJ~s.
"J
#rJc@s+eZdZdgZdZdZdZdS)StatevaluerrN)r+r-r.r0INITIALSTARTEDSHUTDOWNrrrrrs	rpickleZ	xmlrpclibc@seZdZdZiZeZddddddZddZdd	Z	dfd
dZ
edfdd
ZddZ
dddZddZddZddZddZeddZeddZeddddddd ZdS)!rz!
    Base class for managers
    NrcCs|dkrtjj}||_tj||_t|_tj|j_	||_
t|\|_|_
|p|t|_dS)N)rrfrX_addressrW_authkeyr_staterr_serializerrYZ	_Listener_Clientr_ctx)r%r#rXr`Zctxrrrr&s		zBaseManager.__init__cCst|j|j|j|jS)zX
        Return server object with serve_forever() method and address attribute
        )rJ	_registryrrr)r%rrr
get_serverszBaseManager.get_servercCsNt|j\}}||jd|j}t|ddtj|j_dS)z>
        Connect manager object to the server process
        rXNrQ)	rYrrrr:rrrr)r%rarbrrrrconnectszBaseManager.connectcCsO|dk	r%t|r%tdtjdd\}}|jjdt|jd|j|j	|j
|j|||f|_dj
dd	|jjD}t|jd
||j_|jj|j|j|_	|jtj|j_tj|t|jd|j|j	|j
|j|jfdd|_dS)
z@
        Spawn a server process for this manager object
        Nzinitializer must be a callableZduplexFrcr6:css|]}t|VqdS)N)r@)rirrr	<genexpr>sz$BaseManager.start.<locals>.<genexpr>r>exitpriorityr)rC	TypeErrorr	ZPiperZProcessr_run_serverrrrr_processrZ	_identityr+rrkr}r2rrrrrFinalize_finalize_managerrrK)r%initializerinitargsreaderwriterrrrrrks&"


zBaseManager.startc	Csi|dk	r|||j||||}|j|j|jtjd|j|jdS)z@
        Create a server, report its address and run it
        Nzmanager serving at %r)_Serverr1r#r}rr|rw)	clsrVr#rXr`rrrserverrrrrs

zBaseManager._run_servercOsk|j|jd|j}z)t|dd|f||\}}Wd|jXt||j||fS)zP
        Create a new shared object; return the token and exposed tuple
        rXNrL)rrrr:r}r)r%r"r6r7rr$rrrr_creates
)zBaseManager._createcCs;|jdk	r7|jj||jjs7d|_dS)zC
        Join the manager process (if it has been spawned)
        N)rris_alive)r%timeoutrrrrszBaseManager.joinc
CsA|j|jd|j}zt|ddSWd|jXdS)zS
        Return some info about the servers shared objects and connections
        rXNrO)rrrr:r})r%rrrr_debug_infoszBaseManager._debug_infoc
CsA|j|jd|j}zt|ddSWd|jXdS)z5
        Return the number of shared objects
        rXNrP)rrrr:r})r%rrrr_number_of_objects"szBaseManager._number_of_objectscCs#|jjtjkr|j|S)N)rrrrrk)r%rrr	__enter__,s
zBaseManager.__enter__cCs|jdS)N)rK)r%exc_typeexc_valexc_tbrrr__exit__2szBaseManager.__exit__cCs|jrtjdy8||d|}zt|ddWd|jXWntk
reYnX|jdd|jrtjdt|drtjd	|j|jdd
|jrtjdt	j
|_ytj
|=Wntk
rYnXdS)zQ
        Shutdown the manager process; will be registered as a finalizer
        z#sending shutdown message to managerrXNrKrg?zmanager still alive	terminatez'trying to `terminate()` manager processg?z#manager still alive after terminate)rrr|r:r}r{rhasattrrrrrr_address_to_localKeyError)rr#rXr(rrrrrr5s.






zBaseManager._finalize_managercCs|jS)N)r)r%rrr<lambda>UszBaseManager.<lambda>Tc
sd|jkr!|jj|_dkr3t|pHtdd}|p`tdd}|rx t|jD]\}}q|W|||f|j<|rfdd}	|	_t||	dS)z9
        Register a typeid with the manager type
        rN	_exposed__method_to_typeid_c	stjd|j||\}}||jd|d|jd|}|j|jd|j}t|dd|jf|S)Nz)requesting creation of a shared %r objectmanagerrXrrS)	rrsrrrrr#r:r$)r%r6r7rZexpproxyr)rr"rrrErsz"BaseManager.register.<locals>.temp)	__dict__rcopy	AutoProxyrrrr+setattr)
rr"rCrrr
create_methodkeyrrEr)rr"rregisterWs
	zBaseManager.register)r+r-r.r/rrJrr&rrrkclassmethodrrrrrrrstaticmethodrpropertyr#rrrrrrs*		$	

 	c@s(eZdZddZddZdS)ProcessLocalSetcCstj|dddS)NcSs
|jS)N)clear)r rrrrsz*ProcessLocalSet.__init__.<locals>.<lambda>)rregister_after_fork)r%rrrr&szProcessLocalSet.__init__cCst|ffS)N)r)r%rrr
__reduce__szProcessLocalSet.__reduce__N)r+r-r.r&rrrrrrsrc@seZdZdZiZejZddddddZddZ	fidd	Z
d
dZdd
Ze
ddZddZddZddZddZddZdS)rz.
    A base for proxies of shared objects
    NTc
Cs*tjNtjj|jd}|dkrStjtf}|tj|j<WdQRX|d|_|d|_	||_
|j
j|_||_
||_t|d|_|dk	rtj||_n3|j
dk	r|j
j|_ntjj|_|r|jtj|tjdS)Nrr)r_mutexrrr#rZForkAwareLocalr_tls_idset_tokenr$_id_managerrrYrrrWrrfrX_increfr_after_fork)r%rr`rrXrrRZ	tls_idsetrrrr&s(


			
zBaseProxy.__init__cCstjdtjj}tjjdkrH|dtjj7}|j|jj	d|j
}t|dd|f||j_
dS)Nzmaking connection to managerZ
MainThread|rXrM)rrsrrfrr]rrrr#rr:rr	)r%rrrrr_connects
zBaseProxy._connectcCsEy|jj}WnAtk
rStjdtjj|j|jj}YnX|j	|j
|||f|j\}}|dkr|S|dkr2|\}}|jj
|jd
}	|jj|_|	||jd|jd|jd|}
|j|jd|j}t|dd	|jf|
St||dS)zW
        Try to call a method of the referrent and return a copy of the result
        z#thread %r does not own a connectionz#RETURNz#PROXYrrrXrNrS)rr	rrrsr]rrrr1rr2rrr"rr#rrrr:r$r3)r%r5r6r7rr8r9rrrrrrr_callmethods,
	
zBaseProxy._callmethodcCs
|jdS)z9
        Get a copy of the value of the referent
        z	#GETVALUE)r)r%rrr	_getvalueszBaseProxy._getvaluec
Cs|j|jjd|j}t|dd|jftjd|jj|j	j
|j|jor|jj}tj
|tjd|j|j||j|j	|jfdd|_dS)NrXrRz	INCREF %rr6r
)rrr#rr:rrrsr$raddrrrr_decrefrZ_close)r%rr(rrrrszBaseProxy._increfcCs|j|j|dks.|jtjkryEtjd|j||jd|}t|dd|jfWqt	k
r}ztjd|WYdd}~XqXntjd|j|rt
|drtjdtjj
|jj|`dS)Nz	DECREF %rrXrSz... decref failed %sz%DECREF %r -- manager already shutdownr	z-thread %r has no more proxies so closing conn)discardr$rrrrrsr#r:r{rr]rrr	r})rrXr(ZtlsZidsetrrrrrrrs&	
zBaseProxy._decrefcCsTd|_y|jWn6tk
rO}ztjd|WYdd}~XnXdS)Nzincref failed: %s)rrr{rr|)r%rrrrr
s
	zBaseProxy._after_forkcCsi}tjdk	r%|j|d<t|ddr`|j|d<tt|j|j|ffStt	||j|j|ffSdS)NrX_isautoFr)
r
Zget_spawning_popenrrrRebuildProxyrrrr)r%r7rrrrs

zBaseProxy.__reduce__cCs
|jS)N)r)r%memorrr__deepcopy__"szBaseProxy.__deepcopy__cCs&dt|j|jjt|fS)Nz<%s object, typeid %r at %#x>)rr+rr"r$)r%rrrr,%szBaseProxy.__repr__cCsBy|jdSWn*tk
r=t|dddSYnXdS)zV
        Return representation of the referent (or a fall-back if that fails)
        r,Nrz; '__str__()' failed>r)rr{r)r%rrrrA)s
zBaseProxy.__str__)r+r-r.r/rrZForkAwareThreadLockrr&rrrrrrrrrr,rArrrrrs"	
cCsttjdd}|rB|j|jkrB|j|jdS|jddojttjdd}|||d||SdS)z
    Function used for unpickling proxy objects.

    If possible the shared object is returned, or otherwise a proxy for it.
    rgNrrRTZ_inheritingF)rrrfr#r[r$pop)rFrr`r7rrRrrrr6src
Cst|}y|||fSWntk
r2YnXi}x%|D]}td||f|q@Wt|tf|}||_||||f<|S)zB
    Return a proxy type whose methods are given by `exposed`
    zLdef %s(self, *args, **kwds):
        return self._callmethod(%r, args, kwds))rrexecrrr)rr_cacheZdicmeth	ProxyTyperrr
MakeProxyTypeKs

	rTc
Cst|d}|dkrY||jd|}zt|dd|f}Wd|jX|dkrz|dk	rz|j}|dkrtjj}td|j	|}|||d|d|d|}	d|	_
|	S)	z*
    Return an auto-proxy for `token`
    rNrXrNz
AutoProxy[%s]rrRT)rYr#r:r}rrrfrXrr"r)
rr`rrXrrRrrrrrrrras			rc@s(eZdZddZddZdS)	NamespacecKs|jj|dS)N)rupdate)r%r7rrrr&szNamespace.__init__cCst|jj}g}x:|D]2\}}|jds"|jd||fq"W|jd|jjdj|fS)NrHz%s=%rz%s(%s)z, )	rrr
startswithrDrr*r+r)r%rrErrrrrr,s
zNamespace.__repr__N)r+r-r.r&r,rrrrr~src@sReZdZdddZddZddZdd	ZeeeZd
S)ValueTcCs||_||_dS)N)	_typecode_value)r%rrlockrrrr&s	zValue.__init__cCs|jS)N)r)r%rrrrsz	Value.getcCs
||_dS)N)r)r%rrrrrsz	Value.setcCs dt|j|j|jfS)Nz
%s(%r, %r))rr+rr)r%rrrr,szValue.__repr__N)	r+r-r.r&rrr,rrrrrrrs
rcCstj||S)N)r)rZsequencerrrrArraysrc@sReZdZdZddZddZd	d
ZddZd
dZdS)
IteratorProxy__next__r1throwr}cCs|S)Nr)r%rrr__iter__szIteratorProxy.__iter__cGs|jd|S)Nr)r)r%r6rrrrszIteratorProxy.__next__cGs|jd|S)Nr1)r)r%r6rrrr1szIteratorProxy.sendcGs|jd|S)Nr)r)r%r6rrrrszIteratorProxy.throwcGs|jd|S)Nr})r)r%r6rrrr}szIteratorProxy.closeN)rr1rr})	r+r-r.rrrr1rr}rrrrrsrc@sLeZdZd
ZddddZddZd	d
ZddZdS)
AcquirerProxyacquirereleaseTNcCs1|dkr|fn	||f}|jd|S)Nr)r)r%Zblockingrr6rrrrs!zAcquirerProxy.acquirecCs
|jdS)Nr)r)r%rrrrszAcquirerProxy.releasecCs
|jdS)Nr)r)r%rrrrszAcquirerProxy.__enter__cCs
|jdS)Nr)r)r%rrrrrrrszAcquirerProxy.__exit__)rr)r+r-r.rrrrrrrrrrs
rc@sLeZdZdZdddZd	d
ZddZdd
dZdS)ConditionProxyrrrmnotify
notify_allNcCs|jd|fS)Nrm)r)r%rrrrrmszConditionProxy.waitcCs
|jdS)Nr	)r)r%rrrr	szConditionProxy.notifycCs
|jdS)Nr
)r)r%rrrr
szConditionProxy.notify_allcCs|}|r|S|dk	r/t|}nd}d}xF|s|dk	rj|t}|dkrjP|j||}q>W|S)Nr)_timerm)r%Z	predicaterr9ZendtimeZwaittimerrrwait_fors		


zConditionProxy.wait_for)rrrmr	r
)r+r-r.rrmr	r
rrrrrrs
rc@sIeZdZdZddZddZd	d
Zddd
ZdS)
EventProxyrlrrrmcCs
|jdS)Nrl)r)r%rrrrlszEventProxy.is_setcCs
|jdS)Nr)r)r%rrrrszEventProxy.setcCs
|jdS)Nr)r)r%rrrrszEventProxy.clearNcCs|jd|fS)Nrm)r)r%rrrrrmszEventProxy.wait)rlrrrm)r+r-r.rrlrrrmrrrrr
s
r
c@sseZdZdZdddZdd	Zd
dZedd
ZeddZ	eddZ
dS)BarrierProxy__getattribute__rmabortresetNcCs|jd|fS)Nrm)r)r%rrrrrmszBarrierProxy.waitcCs
|jdS)Nr)r)r%rrrrszBarrierProxy.abortcCs
|jdS)Nr)r)r%rrrrszBarrierProxy.resetcCs|jddS)Nrparties)r)r)r%rrrrszBarrierProxy.partiescCs|jddS)Nr	n_waiting)r)r)r%rrrrszBarrierProxy.n_waitingcCs|jddS)Nrbroken)r)r)r%rrrrszBarrierProxy.broken)rrmrr)r+r-r.rrmrrrrrrrrrrrsrc@s:eZdZdZddZddZdd	Zd
S)NamespaceProxyr__setattr____delattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrHrr)objectr)r%r
callmethodrrr__getattr__szNamespaceProxy.__getattr__cCsH|ddkr#tj|||Stj|d}|d||fS)NrrHrr)rrr)r%rrrrrrrszNamespaceProxy.__setattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrHrr)rrr)r%rrrrrrszNamespaceProxy.__delattr__N)rrr)r+r-r.rrrrrrrrrsrc@s=eZdZdZddZddZeeeZdS)	
ValueProxyrrcCs
|jdS)Nr)r)r%rrrrszValueProxy.getcCs|jd|fS)Nr)r)r%rrrrr	szValueProxy.setN)rr)r+r-r.rrrrrrrrrrsr
BaseListProxy__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__rDcountextendindexinsertrremovereverser__imul__c@s(eZdZddZddZdS)	ListProxycCs|jd|f|S)Nr')r)r%rrrr__iadd__szListProxy.__iadd__cCs|jd|f|S)Nr,)r)r%rrrrr,szListProxy.__imul__N)r+r-r.r.r,rrrrr-sr-	DictProxyrrrZhas_keypopitem
setdefaultr
ArrayProxy	PoolProxyZapplyZapply_asyncr}ZimapZimap_unorderedrmapZ	map_asyncstarmapZ
starmap_asyncrZAsyncResultIteratorc@s(eZdZddZddZdS)r3cCs|S)Nr)r%rrrr5szPoolProxy.__enter__cCs|jdS)N)r)r%rrrrrrr7szPoolProxy.__exit__N)r+r-r.rrrrrrr34sc@seZdZdZdS)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+r-r.r/rrrrr>s	QueueZ
JoinableQueuerdLockr^	SemaphoreBoundedSemaphore	ConditionBarrierPoolrdictrrF)I__all__rpr]rZqueuerrrrr	r
rrr
rrrrZ
view_typesrr!Z	view_typerrr:r3r{r;rGrIrJrrarbZXmlListenerZ	XmlClientrYrrrrrrrrrrrrrr
rrrrr-r/r2Z
BasePoolProxyrr3rr7rdr8r^r9r:r;r<r=r>rrrr<module>s




		

Back to Directory File Manager