Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/multiprocessing/managers.pyo

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c@s�ddddgZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZm
Z
mZmZddlmZdd	lmZmZmZmZdd
lmZmZyddlmZWn!ek
rddlmZnXd�Zejeje�gd
ddfD]Z e!e"ie ���^qDZ#de$fd��YZ%fid�Z&d�Z'de(fd��YZ)d�Z*d�Z+de$fd��YZ,de$fd��YZ-iej.ej/fd6ej0ej1fd6Z2de$fd��YZ3de4fd��YZ5de$fd ��YZ6d!�Z7id"�Z8e9e9e9e:d#�Z;d$e$fd%��YZ<d&e$fd'��YZ=e:d(�Z>d)e6fd*��YZ?d+e6fd,��YZ@d-e@fd.��YZAd/e6fd0��YZBd1e6fd2��YZCd3e6fd4��YZDe8d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKf�ZEdLeEfdM��YZFe8dNd7d8d:d<d@dOdPdQdRd
ddGdSdTdUdf�ZGe8dVd<d:d@d;dAf�ZHe8dWdXdYdZd[d\d]d^d_d`f	�ZIidadY6dad_6dbd[6dbd\6eI_Jde3fdc��YZKeKjddej�eKjdeej�eKjdfejLeB�eKjdgejMe@�eKjdhejNe@�eKjdiejOe@�eKjdjejPe@�eKjdkejQeA�eKjdle
eI�eKjdmeReF�eKjdneSeG�eKjd&e=eD�eKjdoe>eH�eKjd$e<eC�eKjdbdpe?dqeT�eKjdadqeT�dS(rtBaseManagertSyncManagert	BaseProxytTokeni�N(t
format_exc(tProcesstcurrent_processtactive_childrentPooltutilt
connection(tAuthenticationString(texittPopentassert_spawningtForkingPickler(tFinalizetinfo(t
PicklingErrorcCstj|j|j�ffS(N(tarrayttypecodettostring(ta((s./sys/lib/python2.7/multiprocessing/managers.pytreduce_array@stitemstkeystvaluescBs8eZdZdZd�Zd�Zd�Zd�ZRS(	s4
    Type to uniquely indentify a shared object
    ttypeidtaddresstidcCs!||||_|_|_dS(N(RRR(tselfRRR((s./sys/lib/python2.7/multiprocessing/managers.pyt__init__PscCs|j|j|jfS(N(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__getstate__SscCs|\|_|_|_dS(N(RRR(Rtstate((s./sys/lib/python2.7/multiprocessing/managers.pyt__setstate__VscCsd|j|j|jfS(Ns#Token(typeid=%r, address=%r, id=%r)(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__repr__Ys(stypeidsaddresssid(t__name__t
__module__t__doc__t	__slots__RR R"R#(((s./sys/lib/python2.7/multiprocessing/managers.pyRJs			cCsN|j||||f�|j�\}}|dkr;|St||��dS(sL
    Send a message to manager using connection `c` and return response
    s#RETURNN(tsendtrecvtconvert_to_error(tcRt
methodnametargstkwdstkindtresult((s./sys/lib/python2.7/multiprocessing/managers.pytdispatchas
cCsN|dkr|S|dkr&t|�S|dkr@td|�Std�SdS(Ns#ERRORs
#TRACEBACKs#UNSERIALIZABLEsUnserializable message: %s
sUnrecognized message type(tRemoteErrort
ValueError(R/R0((s./sys/lib/python2.7/multiprocessing/managers.pyR*ks
R2cBseZd�ZRS(cCs)ddddt|jd�ddS(Ns
t-iKi(tstrR-(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__str__xs(R$R%R6(((s./sys/lib/python2.7/multiprocessing/managers.pyR2wscCsOg}xBt|�D]4}t||�}t|d�r|j|�qqW|S(s4
    Return a list of names of methods of `obj`
    t__call__(tdirtgetattrthasattrtappend(tobjttemptnametfunc((s./sys/lib/python2.7/multiprocessing/managers.pytall_methodsscCs-gt|�D]}|ddkr
|^q
S(sP
    Return a list of names of methods of `obj` which do not start with '_'
    it_(R@(R<R>((s./sys/lib/python2.7/multiprocessing/managers.pytpublic_methods�stServerc	Bs�eZdZddddddddd	g	Zd
�Zd�Zd�Zd
�Zd�Zd�Z	d�Z
ie	d6e
d6ed6Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sM
    Server class which runs in a process controlled by a manager object
    tshutdowntcreatetaccept_connectiontget_methodst
debug_infotnumber_of_objectstdummytincreftdecrefcCs�||_t|�|_t|\}}|d|dd�|_|jj|_iddfd6|_i|_t	j
�|_d|_dS(NRtbacklogit0i((
tregistryRtauthkeytlistener_clienttlistenerRtNonet	id_to_objtid_to_refcountt	threadingtRLocktmutextstop(RRORRPt
serializertListenertClient((s./sys/lib/python2.7/multiprocessing/managers.pyR�s		cCs�|t�_z�ykxdy|jj�}Wnttfk
rDqnXtjd|jd|f�}t	|_
|j�qWntt
fk
r�nXWdd|_|jj�XdS(s(
        Run the server forever
        ttargetR-Ni�(Rt_manager_serverRRtaccepttOSErrortIOErrorRVtThreadthandle_requesttTruetdaemontstarttKeyboardInterruptt
SystemExitRYtclose(RR+tt((s./sys/lib/python2.7/multiprocessing/managers.pyt
serve_forever�s		cCs`d}}}yWtj||j�tj||j�|j�}|\}}}}t||�}Wn tk
r�dt�f}	nFXy||||�}Wn tk
r�dt�f}	n
Xd|f}	y|j	|	�Wnqtk
rQ}
y|j	dt�f�Wntk
rnXt
jd|	�t
jd|�t
jd|
�nX|j�dS(s)
        Handle a new connection
        s
#TRACEBACKs#RETURNsFailure to send message: %rs ... request was %rs ... exception was %rN(
RSR
tdeliver_challengeRPtanswer_challengeR)R9t	ExceptionRR(R	RRi(RR+tfuncnameR0trequesttignoreR-R.R?tmsgte((s./sys/lib/python2.7/multiprocessing/managers.pyRc�s2


cCs�tjdtj�j�|j}|j}|j}x�|js�d}}|�}|\}}}	}
||\}}}||kr�t
d|t|�|f��nt||�}
y|
|	|
�}Wnt
k
r�}d|f}npX|o|j|d�}|rP|j|||�\}}t||j|�}d||ff}nd|f}Wn�t
k
r�|dkr�dt�f}q?y8|j|}||||||	|
�}d|f}Wq?t
k
r�dt�f}q?XnVtk
rtjdtj�j�tjd�n t
k
r>dt�f}nXy>y||�Wn)t
k
r{}|d	t|�f�nXWq7t
k
r�}tjd
tj�j�tjd|�tjd|�|j�tjd
�q7Xq7WdS(sQ
        Handle requests from the proxies in a particular process/thread
        s$starting server thread to service %rs+method %r of %r object is not in exposed=%rs#ERRORs#PROXYs#RETURNs
#TRACEBACKs$got EOF -- exiting thread serving %ris#UNSERIALIZABLEsexception in thread serving %rs ... message was %rs ... exception was %riN(R	tdebugRVtcurrent_threadR>R)R(RTRYRStAttributeErrorttypeR9RntgetRERRRtfallback_mappingtEOFErrortsysRtreprRRi(RtconnR)R(RTR,R<RptidentR-R.texposedt	gettypeidtfunctiontresRsRrRtridenttrexposedttokent
fallback_funcR0((s./sys/lib/python2.7/multiprocessing/managers.pytserve_client�sl				
	



	
	
cCs|S(N((RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pytfallback_getvalue+scCs
t|�S(N(R5(RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pytfallback_str.scCs
t|�S(N(R|(RR}R~R<((s./sys/lib/python2.7/multiprocessing/managers.pyt
fallback_repr1sR6R#s	#GETVALUEcCsdS(N((RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRJ:scCs�|jj�z�g}|jj�}|j�xS|D]K}|dkr6|jd||j|t|j|d�d f�q6q6Wdj|�SWd|jj	�XdS(sO
        Return some info --- useful to spot problems with refcounting
        RNs  %s:       refcount=%s
    %siiKs
N(
RXtacquireRTRtsortR;RUR5tjointrelease(RR+R0RR~((s./sys/lib/python2.7/multiprocessing/managers.pyRH=s


	
'cCst|j�dS(s*
        Number of shared objects
        i(tlenRT(RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRIOscCsz�tjd�|jd	�tjtjkrZtjd�tjt_tjt_ntj	d�x(t
�D]}tjd�|j�qqWx(t
�D]}tjd�|j�q�Wtj	�tj
d�Wnddl}|j�nXWdtd�XdS(
s'
        Shutdown this process
        s!manager received shutdown messages#RETURNsresetting stdout, stderris&terminating a child process of managersmanager exiting with exitcode 0i�N(s#RETURNN(R	RtR(RSR{tstdoutt
__stdout__t
__stderr__tstderrt_run_finalizersRt	terminateR�Rt	tracebackt	print_excR(RR+tpR�((s./sys/lib/python2.7/multiprocessing/managers.pyRDUs*






cOs%|jj�z|j|\}}}}|dkrB|d}	n|||�}	|dkrlt|	�}n|dk	r�t|�t|�}ndt|	�}
tjd||
�|	t	|�|f|j
|
<|
|jkr�|j|
<n|j||
�|
t
|�fSWd|jj�XdS(s>
        Create a new shared object and return its id
        is%xs&%r callable returned object with id %rN(RXR�RORSRBtlistRR	RttsetRTRURKttupleR�(RR+RR-R.tcallableRtmethod_to_typeidt	proxytypeR<R~((s./sys/lib/python2.7/multiprocessing/managers.pyREus$

cCst|j|jd�S(sL
        Return the methods of the shared object indicated by token
        i(R�RTR(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRG�scCs-|tj�_|jd�|j|�dS(s=
        Spawn a new thread to serve this connection
        s#RETURNN(s#RETURNN(RVRuR>R(RSR�(RR+R>((s./sys/lib/python2.7/multiprocessing/managers.pyRF�s
cCs9|jj�z|j|cd7<Wd|jj�XdS(Ni(RXR�RUR�(RR+R~((s./sys/lib/python2.7/multiprocessing/managers.pyRK�s
cCss|jj�zQ|j|cd8<|j|dkr]|j|=|j|=tjd|�nWd|jj�XdS(Niisdisposing of obj with id %r(RXR�RURTR	RtR�(RR+R~((s./sys/lib/python2.7/multiprocessing/managers.pyRL�s
(R$R%R&tpublicRRkRcR�R�R�R�RyRJRHRIRDRERGRFRKRL(((s./sys/lib/python2.7/multiprocessing/managers.pyRC�s.			"	J			
				 	&			tStatecBs#eZdgZdZdZdZRS(tvalueiii(R$R%R'tINITIALtSTARTEDtSHUTDOWN(((s./sys/lib/python2.7/multiprocessing/managers.pyR��s	tpicklet	xmlrpclibcBs�eZdZiZeZdddd�Zd�Zd�Z	d�Z
ddd�Zeddd��Z
d�Zdd	�Zd
�Zd�Zd�Zd
�Zed��Zed��Zedddded��ZRS(s!
    Base class for managers
    R�cCsq|dkrt�j}n||_t|�|_t�|_tj|j_	||_
t|\|_|_
dS(N(RSRRPt_addressRt_authkeyR�t_stateR�R�t_serializerRQt	_Listenert_Client(RRRPRZ((s./sys/lib/python2.7/multiprocessing/managers.pyR�s		cCs%t|�j|j|j|jffS(N(Rwtfrom_addressR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
__reduce__�scCst|j|j|j|j�S(sX
        Return server object with serve_forever() method and address attribute
        (RCt	_registryR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
get_server�scCsNt|j\}}||jd|j�}t|dd�tj|j_	dS(s>
        Connect manager object to the server process
        RPRJN(
RQR�R�R�R1RSR�R�R�R�(RR[R\R}((s./sys/lib/python2.7/multiprocessing/managers.pytconnect�scCsL|dk	r+t|d�r+td��ntjdt�\}}tdt|�jd|j	|j
|j|j|||f�|_
djd�|j
jD��}t|�jd||j
_|j
j�|j�|j�|_
|j�tj|j_tj|t|�jd|j
|j
|j|j|jfd	d
�|_dS(s@
        Spawn a server process for this manager object
        R7sinitializer must be a callabletduplexR]R-t:css|]}t|�VqdS(N(R5(t.0ti((s./sys/lib/python2.7/multiprocessing/managers.pys	<genexpr>
sR4texitpriorityiN(RSR:t	TypeErrorR
tPipetFalseRRwt_run_serverR�R�R�R�t_processR�t	_identityR$R>RfRiR)R�R�R�R�R	Rt_finalize_managerR�RD(RtinitializertinitargstreadertwriterR~((s./sys/lib/python2.7/multiprocessing/managers.pyRf�s&


c	Csl|dk	r||�n|j||||�}|j|j�|j�tjd|j�|j�dS(s@
        Create a server, report its address and run it
        smanager serving at %rN(RSt_ServerR(RRiR	RRk(	tclsRORRPRZR�R�R�tserver((s./sys/lib/python2.7/multiprocessing/managers.pyR�s

cOsk|j|jd|j�}z)t|dd|f||�\}}Wd|j�Xt||j|�|fS(sP
        Create a new shared object; return the token and exposed tuple
        RPREN(R�R�R�R1RSRiR(RRR-R.R}RR((s./sys/lib/python2.7/multiprocessing/managers.pyt_create0s
)cCs|jj|�dS(sC
        Join the manager process (if it has been spawned)
        N(R�R�(Rttimeout((s./sys/lib/python2.7/multiprocessing/managers.pyR�<scCsA|j|jd|j�}zt|dd�SWd|j�XdS(sS
        Return some info about the servers shared objects and connections
        RPRHN(R�R�R�R1RSRi(RR}((s./sys/lib/python2.7/multiprocessing/managers.pyt_debug_infoBscCsA|j|jd|j�}zt|dd�SWd|j�XdS(s5
        Return the number of shared objects
        RPRIN(R�R�R�R1RSRi(RR}((s./sys/lib/python2.7/multiprocessing/managers.pyt_number_of_objectsLscCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt	__enter__VscCs|j�dS(N(RD(Rtexc_typetexc_valtexc_tb((s./sys/lib/python2.7/multiprocessing/managers.pyt__exit__YscCs|j�r�jd�y8||d|�}zt|dd�Wd|j�XWntk
rdnX|jdd�|j�r�jd�t|d�r�jd	�|j	�|jdd
�|j�r�jd�q���t
j|_yt
j|=Wntk
rnXdS(sQ
        Shutdown the manager process; will be registered as a finalizer
        s#sending shutdown message to managerRPRDNR�g����smanager still aliveR�s'trying to `terminate()` manager processg����s#manager still alive after terminate(tis_aliveR	RR1RSRiRnR�R:R�R�R�R�Rt_address_to_localtKeyError(tprocessRRPR!R�R}((s./sys/lib/python2.7/multiprocessing/managers.pyR�\s.





cCs|jS(N(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt<lambda>|sc
s�d|jkr$|jj�|_n�dkr9t�n|pNt�dd�}|pft�dd�}|r�x|j�D]\}}q|Wn|||�f|j�<|r���fd�}	�|	_t|�|	�ndS(s9
        Register a typeid with the manager type
        R�t	_exposed_t_method_to_typeid_c	s�tjd��|j�||�\}}�||jd|d|jd|�}|j|jd|j�}t|dd|j	f�|S(Ns)requesting creation of a shared %r objecttmanagerRPRRL(
R	RtR�R�R�R�RR1RSR(RR-R.R�texptproxyR}(R�R(s./sys/lib/python2.7/multiprocessing/managers.pyR=�sN(	t__dict__R�tcopyRSt	AutoProxyR9RR$tsetattr(
R�RR�R�RR�t
create_methodtkeyR�R=((R�Rs./sys/lib/python2.7/multiprocessing/managers.pytregister~s	
	N(((R$R%R&R�RCR�RSRR�R�R�RftclassmethodR�R�R�R�R�R�R�tstaticmethodR�tpropertyRRdR�(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s*
				$		
	
		 	tProcessLocalSetcBseZd�Zd�ZRS(cCstj|d��dS(NcSs
|j�S(N(tclear(R<((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(R	tregister_after_fork(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCst|�dfS(N((Rw(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(R$R%RR�(((s./sys/lib/python2.7/multiprocessing/managers.pyR��s	cBs�eZdZiZej�Zddded�Z	d�Z
d
id�Zd�Zd�Z
ed��Zd�Zd�Zd	�Zd
�Zd�ZRS(s.
    A base for proxies of shared objects
    cCs;tjj�zPtjj|jd�}|dkr\tj�t	�f}|tj|j<nWdtjj
�X|d|_|d|_||_
|j
j|_||_||_t|d|_|dk	r�|�|_n0|jdk	r|jj|_nt�j|_|r$|j�ntj|tj�dS(Nii(Rt_mutexR�R�RxRRSR	tForkAwareLocalR�R�t_tlst_idsett_tokenRt_idt_managerR�RQR�RR�RRPt_increfR�t_after_fork(RR�RZR�RPRRKt	tls_idset((s./sys/lib/python2.7/multiprocessing/managers.pyR�s,


			
cCs�tjd�t�j}tj�jdkrH|dtj�j7}n|j|jjd|j	�}t
|dd|f�||j_
dS(Nsmaking connection to managert
MainThreadt|RPRF(R	RtRR>RVRuR�R�RR�R1RSR�R
(RR>R}((s./sys/lib/python2.7/multiprocessing/managers.pyt_connect�s
c	CsDy|jj}Wn@tk
rRtjdtj�j�|j�|jj}nX|j	|j
|||f�|j�\}}|dkr�|S|dkr1|\}}|jj
|jd}	|jj|_|	||jd|jd|jd|�}
|j|jd|j�}t|d	d|jf�|
St||��d	S(
sW
        Try to call a method of the referrent and return a copy of the result
        s#thread %r does not own a connections#RETURNs#PROXYi�R�RPRRLN(R�R
RvR	RtRVRuR>R�R(R�R)R�R�RR�RR�R�R�R1RSRR*(RR,R-R.R}R/R0RR�R�R�((s./sys/lib/python2.7/multiprocessing/managers.pyt_callmethod�s,
	
cCs
|jd�S(s9
        Get a copy of the value of the referent
        s	#GETVALUE(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt	_getvaluesc
Cs�|j|jjd|j�}t|dd|jf�tjd|jj	�|j
j|j�|jor|jj
}tj|tjd|j|j||j|j
|jfdd�|_dS(NRPRKs	INCREF %rR-R�i
(R�R�RR�R1RSR�R	RtRR�taddR�R�RRt_decrefR�t_close(RR}R!((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs�|j|j�|dks.|jtjkr�yEtjd|j�||jd|�}t	|dd|jf�Wq�t
k
r�}tjd|�q�Xntjd|j�|r�|d�r�jdtj
�j�|jj�|`ndS(Ns	DECREF %rRPRLs... decref failed %ss%DECREF %r -- manager already shutdownR
s-thread %r has no more proxies so closing conn(tdiscardRRSR�R�R�R	RtRR1RnR:RVRuR>R
Ri(R�RPR!ttlstidsetR�R}Rs((s./sys/lib/python2.7/multiprocessing/managers.pyR�s	
cCsBd|_y|j�Wn$tk
r=}tjd|�nXdS(Nsincref failed: %s(RSR�R�RnR	R(RRs((s./sys/lib/python2.7/multiprocessing/managers.pyR�7s
	cCs�i}tj�r"|j|d<nt|dt�r]|j|d<tt|j|j	|ffStt
|�|j|j	|ffSdS(NRPt_isautoR(R
tthread_is_spawningR�R9R�R�tRebuildProxyR�R�R�Rw(RR.((s./sys/lib/python2.7/multiprocessing/managers.pyR�?s
cCs
|j�S(N(R�(Rtmemo((s./sys/lib/python2.7/multiprocessing/managers.pyt__deepcopy__LscCs*dt|�j|jjdt|�fS(Ns<%s object, typeid %r at %s>s0x%x(RwR$R�RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#OscCs8y|jd�SWn tk
r3t|�d dSXdS(sV
        Return representation of the referent (or a fall-back if that fails)
        R#i�s; '__str__()' failed>N(R�RnR|(R((s./sys/lib/python2.7/multiprocessing/managers.pyR6Ss
N((R$R%R&R�R	tForkAwareThreadLockR�RSRdRR�R�R�R�R�R�R�R�R�R#R6(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s%						
		cCs�tt�dd�}|r?|j|jkr?|j|jdS|jdt�odtt�dt�}|||d||�SdS(s�
    Function used for unpickling proxy objects.

    If possible the shared object is returned, or otherwise a proxy for it.
    R^iRKt_inheritingN(	R9RRSRRTRtpopRdR�(R?R�RZR.R�RK((s./sys/lib/python2.7/multiprocessing/managers.pyR�`scBs�e|�}y|||fSWnek
r1nXi}x |D]}d||f|Uq?We|ef|�}||_||||f<|S(sC
    Return an proxy type whose methods are given by `exposed`
    sLdef %s(self, *args, **kwds):
        return self._callmethod(%r, args, kwds)(R�R�RwRR�(R>Rt_cachetdictmetht	ProxyType((s./sys/lib/python2.7/multiprocessing/managers.pyt
MakeProxyTypeus

	c
	Cs�t|d}|dkr\||jd|�}zt|dd|f�}Wd|j�Xn|dkr�|dk	r�|j}n|dkr�t�j}ntd|j	|�}|||d|d|d|�}	t
|	_|	S(s*
    Return an auto-proxy for `token`
    iRPRGNs
AutoProxy[%s]R�RK(RQRSRR1RiR�RRPRRRdR�(
R�RZR�RPRRKR�R}RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR��s		t	NamespacecBseZd�Zd�ZRS(cKs|jj|�dS(N(R�tupdate(RR.((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCss|jj�}g}x=|D]5\}}|jd�s|jd||f�qqW|j�dtjd|�S(NRAs%s=%rs
Namespace(%s)s, (R�Rt
startswithR;R�R5R�(RRR=R>R�((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s
(R$R%RR#(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s	tValuecBs>eZed�Zd�Zd�Zd�Zeee�ZRS(cCs||_||_dS(N(t	_typecodet_value(RRR�tlock((s./sys/lib/python2.7/multiprocessing/managers.pyR�s	cCs|jS(N(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyRx�scCs
||_dS(N(R(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs dt|�j|j|jfS(Ns
%s(%r, %r)(RwR$RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s(	R$R%RdRRxR�R#R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR
�s
			cCstj||�S(N(R(RtsequenceR
((s./sys/lib/python2.7/multiprocessing/managers.pytArray�st
IteratorProxycBsDeZdZd�Zd�Zd�Zd�Zd	�Zd
�ZRS(t__next__tnextR(tthrowRicCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt__iter__�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NR((R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR(�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NRi(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRi�s(s__next__snextssendsthrowsclose(	R$R%R�RRRR(RRi(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s					t
AcquirerProxycBs5eZdZed�Zd�Zd�Zd�ZRS(R�R�cCs|jd|f�S(NR�(R�(Rtblocking((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(RR�R�R�((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(sacquiresrelease(R$R%R�RdR�R�R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
		tConditionProxycBs,eZdZd	d�Zd�Zd�ZRS(
R�R�twaittnotifyt
notify_allcCs|jd|f�S(NR(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs
|jd�S(NR(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs
|jd�S(NR(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sacquiresreleaseswaitsnotifys
notify_allN(R$R%R�RSRRR(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s	t
EventProxycBs5eZdZd�Zd�Zd�Zd	d�ZRS(
tis_setR�R�RcCs
|jd�S(NR(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs|jd|f�S(NR(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sis_setssetsclearswaitN(R$R%R�RR�R�RSR(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
			tNamespaceProxycBs)eZdZd�Zd�Zd�ZRS(t__getattribute__t__setattr__t__delattr__cCsB|ddkr tj||�Stj|d�}|d|f�S(NiRAR�R(tobjectR(RR�t
callmethod((s./sys/lib/python2.7/multiprocessing/managers.pyt__getattr__�scCsH|ddkr#tj|||�Stj|d�}|d||f�S(NiRAR�R(R!RR(RR�R�R"((s./sys/lib/python2.7/multiprocessing/managers.pyRscCsB|ddkr tj||�Stj|d�}|d|f�S(NiRAR�R (R!R R(RR�R"((s./sys/lib/python2.7/multiprocessing/managers.pyR s(s__getattribute__s__setattr__s__delattr__(R$R%R�R#RR (((s./sys/lib/python2.7/multiprocessing/managers.pyR�s		t
ValueProxycBs/eZdZd�Zd�Zeee�ZRS(RxR�cCs
|jd�S(NRx(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyRxscCs|jd|f�S(NR�(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sgetsset(R$R%R�RxR�R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR$s		t
BaseListProxyt__add__t__contains__t__delitem__t__delslice__t__getitem__t__getslice__t__len__t__mul__t__reversed__t__rmul__t__setitem__t__setslice__R;tcounttextendtindextinsertRtremovetreverseR�t__imul__t	ListProxycBseZd�Zd�ZRS(cCs|jd|f�|S(NR3(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt__iadd__scCs|jd|f�|S(NR8(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR8 s(R$R%R:R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR9s	t	DictProxyR�R�Rxthas_keytpopitemt
setdefaultRt
ArrayProxyt	PoolProxytapplytapply_asyncRitimaptimap_unorderedR�tmapt	map_asyncR�tAsyncResulttIteratorcBseZdZRS(s(
    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.
    (R$R%R&(((s./sys/lib/python2.7/multiprocessing/managers.pyR@s	tQueuet
JoinableQueuetEventtLockRWt	SemaphoretBoundedSemaphoret	ConditionRR�tdictRR�R�(Ut__all__tosR{tweakrefRVRRIR�RtmultiprocessingRRRRR	R
tmultiprocessing.processRtmultiprocessing.forkingRR
RRtmultiprocessing.utilRRtcPickleRtImportErrorR�RR�R>RwR9t
view_typesR!RR1R*RnR2R@RBRCR�R[R\tXmlListenert	XmlClientRQRR�R�RR�RRSRdR�RR
RRRRRRR$R%R9R;R?R@R�RRKRLRWRMRNROR�RPR�(((s./sys/lib/python2.7/multiprocessing/managers.pyt<module>$s�."
	4
			
�
�
�
		


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].