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



]{@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/managers.pyreduce_array%srcCs(g|]}tti|qSr)typegetattr).0namerrr
<listcomp>)s	ritemskeysvaluescCstt|ffS)N)list)objrrrrebuild_as_list+sr!c@sFeZdZd
ZddZddZdd	Zd
dZdS)rtypeidaddressidcCs!||||_|_|_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__	__slots__r&r'r)r,rrrrr4s
cCsN|j||||f|j\}}|dkr;|St||dS)Nz#RETURN)sendrecvconvert_to_error)cr$
methodnameargskwdskindresultrrrdispatchKs
r9cCsN|dkr|S|dkr&t|S|dkr@td|StdSdS)Nz#ERRORz
#TRACEBACKz#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)RemoteError
ValueError)r7r8rrrr2Us
r2c@seZdZddZdS)r:cCs)ddddt|jdddS)N
-Kr)strr5)r%rrr__str__bszRemoteError.__str__N)r+r-r.r@rrrrr:asr:cCsIg}x<t|D].}t||}t|r|j|qW|S)N)dirrcallableappend)r temprfuncrrrall_methodsisrFcCsddt|DS)NcSs&g|]}|ddkr|qS)r_r)rrrrrrxs	z"public_methods.<locals>.<listcomp>)rF)r rrrpublic_methodstsrHc	@seZdZddddddddd	g	Zd
dZdd
ZddZddZddZddZ	ddZ
ddZde
dede	iZddZ
dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/S)0Servershutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefcCs||_tj||_t|\}}|d|dd|_|jj|_ddffi|_i|_t	j
|_dS)Nr#backlog0)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)NtargetTrzresetting 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)Nrcr5T)rZacceptOSErrorr]rhhandle_requestrjrk)r%r3trrrris
	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)Nz
#TRACEBACKz#RETURNzFailure to send message: %rz ... request was %rz ... exception was %r)r	deliver_challengerXanswer_challenger1r	Exceptionrr0rinfoclose)r%r3funcnamer8requestignorer5r6rEmsgerrrrzs2


#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
r7tjdtjjtjdYn!t
k
rWdtf}YnXyMy||Wn8t
k
r}z|d	tfWYdd}~XnXWq7t
k
r}zUtjd
tjjtjd|tjd||jtjd
WYdd}~Xq7Xq7WdS)Nz$starting server thread to service %rz+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_threadrr1r0r[rerlAttributeErrorrrr~getrKrr#rfallback_mappingEOFErrorrprvrr)r%connr1r0r[r4r ridentr5r6exposedZ	gettypeidfunctionresrrr"ZridentZrexposedtokenZ
fallback_funcr8rrr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_reprr@r,z	#GETVALUEcCsdS)Nr)r%r3rrrrP.szServer.dummycCs|jg}t|jj}|jxV|D]N}|dkr6|jd||j|t|j|dddfq6Wdj|SWdQRXdS)NrUz  %s:       refcount=%s
    %srr>r<)	r_rr[rsortrCr\r?join)r%r3r8rrrrrrN1s


	
*zServer.debug_infocCst|jdS)Nr)lenr[)r%r3rrrrO@szServer.number_of_objectscCsXzCytjd|jdWnddl}|jYnXWd|jjXdS)Nz!manager received shutdown message#RETURNr)rN)rrsr0	traceback	print_excreset)r%r3rrrrrJFs
zServer.shutdowncOs|j|j|\}}}}|dkr<|d}	n|||}	|dkrct|	}|dk	rt|t|}dt|	}
tjd||
|	t||f|j|
<|
|j	krd|j	|
<|j
||
|
t|fSWdQRXdS)Nrz%xz&%r callable returned object with id %r)r_rVrHrr$rrsrr[r\rQtuple)r%r3r"r5r6rBrmethod_to_typeid	proxytyper rrrrrKSs 


z
Server.createcCst|j|jdS)Nr)rr[r$)r%r3rrrrrMvszServer.get_methodscCs-|tj_|jd|j|dS)N#RETURN)rN)r]rrr0r)r%r3rrrrrL|s
zServer.accept_connectioncCs&|j|j|d7<WdQRXdS)Nr)r_r\)r%r3rrrrrQs
z
Server.increfcCs]|jM|j|d8<|j|dkrR|j|=|j|=tjd|WdQRXdS)Nrrzdisposing of obj with id %r)r_r\r[rrs)r%r3rrrrrRs

z
Server.decrefN)r+r-r.Zpublicr&rwrirzrrrrrrPrNrOrJrKrMrLrQrRrrrrrI~s,
"J
#rIc@s+eZdZdgZdZdZdZdS)StatevaluerrN)r+r-r.r/INITIALSTARTEDSHUTDOWNrrrrrs	rpickle	xmlrpclibc@seZdZiZeZddddddZddZddZdfd	d
Z	e
dfddZd
dZdddZ
ddZddZddZddZeddZeddZe
dddddddZdS) rNrcCs|dkrtjj}||_tj||_t|_tj|j_	||_
t|\|_|_
|p|t|_dS)N)rrfrX_addressrW_authkeyr_staterr_serializerrYZ	_Listener_Clientr_ctx)r%r#rXr`ctxrrrr&s		zBaseManager.__init__cCst|j|j|j|jS)N)rI	_registryrrr)r%rrr
get_serverszBaseManager.get_servercCsNt|j\}}||jd|j}t|ddtj|j_dS)NrXrP)	rYrrrr9rrrr)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|jfd
d|_dS)Nzinitializer must be a callableduplexFrcr5:css|]}t|VqdS)N)r?)rirrr	<genexpr>sz$BaseManager.start.<locals>.<genexpr>r=exitpriorityr)rB	TypeErrorr	PiperProcessr_run_serverrrrr_processr	_identityr+rrkrr1rrrrrFinalize_finalize_managerrrJ)r%initializerinitargsreaderwriterrrrrrks&"


zBaseManager.startc	Csi|dk	r|||j||||}|j|j|jtjd|j|jdS)Nzmanager serving at %r)_Serverr0r#rrrrw)	clsrVr#rXr`rrrserverrrrrs

zBaseManager._run_servercOsk|j|jd|j}z)t|dd|f||\}}Wd|jXt||j||fS)NrXrK)rrrr9rr)r%r"r5r6rr$rrrr_creates
)zBaseManager._createcCs;|jdk	r7|jj||jjs7d|_dS)N)rris_alive)r%timeoutrrrrszBaseManager.joinc
CsA|j|jd|j}zt|ddSWd|jXdS)NrXrN)rrrr9r)r%rrrr_debug_infoszBaseManager._debug_infoc
CsA|j|jd|j}zt|ddSWd|jXdS)NrXrO)rrrr9r)r%rrrr_number_of_objects"szBaseManager._number_of_objectscCs#|jjtjkr|j|S)N)rrrrrk)r%rrr	__enter__,s
zBaseManager.__enter__cCs|jdS)N)rJ)r%exc_typeexc_valexc_tbrrr__exit__2szBaseManager.__exit__cCs|jrtjdy8||d|}zt|ddWd|jXWntk
reYnX|jdd|jrtjdt|drtjd|j|jdd	|jrtjd
t	j
|_ytj
|=Wntk
rYnXdS)Nz#sending shutdown message to managerrXrJrg?zmanager still alive	terminatez'trying to `terminate()` manager processg?z#manager still alive after terminate)rrrr9rr~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)Nr	_exposed__method_to_typeid_c	stjd|j||\}}||jd|d|jd|}|j|jd|j}t|dd|jf|S)Nz)requesting creation of a shared %r objectmanagerrXrrR)	rrsrrrrr#r9r$)r%r5r6rexpproxyr)rr"rrrDrsz"BaseManager.register.<locals>.temp)	__dict__rcopy	AutoProxyrrrr+setattr)
rr"rBrrr
create_methodkeyrrDr)rr"rregisterWs
	zBaseManager.register)r+r-r.rrIrr&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@seZdZiZejZddddddZddZfiddZ	d	d
Z
ddZed
dZ
ddZddZddZddZddZdS)rNTc
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#rForkAwareLocalr_tls_idset_tokenr$_id_managerrrYrrrWrrfrX_increfr_after_fork)r%rr`rrXrrQZ	tls_idsetrrrr&s(


			
zBaseProxy.__init__cCstjdtjj}tjjdkrH|dtjj7}|j|jj	d|j
}t|dd|f||j_
dS)Nzmaking connection to manager
MainThread|rXrL)rrsrrfrr]rrrr#rr9rr	)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)
Nz#thread %r does not own a connectionz#RETURNz#PROXYrrrXrrR)rr	rrrsr]rrrr0rr1rrr"rr#rrrr9r$r2)r%r4r5r6rr7r8rrrrrrr_callmethods,
	
zBaseProxy._callmethodcCs
|jdS)Nz	#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)NrXrQz	INCREF %rr5r
)rrr#rr9rrrsr$raddrrrr_decrefr_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 %rrXrRz... decref failed %sz%DECREF %r -- manager already shutdownr	z-thread %r has no more proxies so closing conn)discardr$rrrrrsr#r9r~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
get_spawning_popenrrrRebuildProxyrrrr)r%r6rrrrs

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)Nr,rz; '__str__()' failed>r)rr~r)r%rrrr@)s
zBaseProxy.__str__)r+r-r.rrForkAwareThreadLockrr&rrrrrrrrrr,r@rrrrrs"	
cCsttjdd}|rB|j|jkrB|j|jdS|jddojttjdd}|||d||SdS)NrgrrQTZ_inheritingF)rrrfr#r[r$pop)rErr`r6rrQrrrr6src
Cst|}y|||fSWntk
r2YnXi}x%|D]}td||f|q@Wt|tf|}||_||||f<|S)NzLdef %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)NrrXrMz
AutoProxy[%s]rrQT)rYr#r9rrrrfrXrr"r)
rr`rrXrrQrrrrrrrras			rc@s(eZdZddZddZdS)	NamespacecKs|jj|dS)N)rupdate)r%r6rrrr&szNamespace.__init__cCst|jj}g}x:|D]2\}}|jds"|jd||fq"W|jd|jjdj|fS)NrGz%s=%rz%s(%s)z, )	rrr
startswithrCrr*r+r)r%rrDrrrrrr,s
zNamespace.__repr__N)r+r-r.r&r,rrrrr	~sr	c@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+r
r)r%rrrr,szValue.__repr__N)	r+r-r.r&rrr,rrrrrrrs
rcCstj||S)N)r)rZsequencerrrrArraysrc@sReZdZdZddZddZd	d
ZddZd
dZdS)
IteratorProxy__next__r0throwrcCs|S)Nr)r%rrr__iter__szIteratorProxy.__iter__cGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.__next__cGs|jd|S)Nr0)r)r%r5rrrr0szIteratorProxy.sendcGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.throwcGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.closeN)rr0rr)	r+r-r.rrrr0rrrrrrrsrc@sLeZdZd
ZddddZddZd	d
ZddZdS)
AcquirerProxyacquirereleaseTNcCs1|dkr|fn	||f}|jd|S)Nr)r)r%blockingrr5rrrrs!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%rrrrszConditionProxy.notifycCs
|jdS)Nr)r)r%rrrrszConditionProxy.notify_allcCs|}|r|S|dk	r/t|}nd}d}xF|s|dk	rj|t}|dkrjP|j||}q>W|S)Nr)_timerm)r%	predicaterr8endtimewaittimerrrwait_fors		


zConditionProxy.wait_for)rrrmrr)r+r-r.rrmrrr 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%rrrr$szBarrierProxy.abortcCs
|jdS)Nr%)r)r%rrrr%szBarrierProxy.resetcCs|jddS)Nr#parties)r&)r)r%rrrr&szBarrierProxy.partiescCs|jddS)Nr#	n_waiting)r')r)r%rrrr'szBarrierProxy.n_waitingcCs|jddS)Nr#broken)r()r)r%rrrr(szBarrierProxy.broken)r#rmr$r%)r+r-r.rrmr$r%rr&r'r(rrrrr"sr"c@s:eZdZdZddZddZdd	Zd
S)NamespaceProxyr#__setattr____delattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrGrr#)objectr#)r%r
callmethodrrr__getattr__szNamespaceProxy.__getattr__cCsH|ddkr#tj|||Stj|d}|d||fS)NrrGrr*)r,r*r#)r%rrr-rrrr*szNamespaceProxy.__setattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrGrr+)r,r+r#)r%rr-rrrr+szNamespaceProxy.__delattr__N)r#r*r+)r+r-r.rr.r*r+rrrrr)sr)c@s=eZdZdZddZddZeeeZdS)	
ValueProxyrrcCs
|jdS)Nr)r)r%rrrrszValueProxy.getcCs|jd|fS)Nr)r)r%rrrrr	szValueProxy.setN)rr)r+r-r.rrrrrrrrrr/sr/
BaseListProxy__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__rCcountextendindexinsertrremovereverser__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.rBr@rrrrrAsrA	DictProxyrrrZhas_keypopitem
setdefaultr

ArrayProxy	PoolProxyZapplyZapply_asyncrimapZimap_unorderedrmapZ	map_asyncstarmapZ
starmap_asyncrZAsyncResultIteratorc@s(eZdZddZddZdS)rGcCs|S)Nr)r%rrrr5szPoolProxy.__enter__cCs|jdS)N)r)r%rrrrrrr7szPoolProxy.__exit__N)r+r-r.rrrrrrrG4sc@seZdZdS)rN)r+r-r.rrrrr>s	Queue
JoinableQueuerdLockr^	SemaphoreBoundedSemaphore	ConditionBarrierPoolrdictrrF)I__all__rpr]rqueuerrrrr	r
rrr
rrrrZ
view_typesrr!Z	view_typer,rr9r2r~r:rFrHrIrrarbXmlListener	XmlClientrYrrrrrrrr	rrrrrr!r"r)r/r0rArCrFZ
BasePoolProxyrrGrrLrdrNr^rOrPrQrRrSrTrrrr<module>s




		

Back to Directory File Manager