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

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
cCs~|dkr|S|dkr>t|�tks4t�t|�S|dkrpt|�tksbt�td|�Std�SdS(Ns#ERRORs
#TRACEBACKs#UNSERIALIZABLEsUnserializable message: %s
sUnrecognized message type(ttypetstrtAssertionErrortRemoteErrort
ValueError(R/R0((s./sys/lib/python2.7/multiprocessing/managers.pyR*ks
R5cBseZd�ZRS(cCs)ddddt|jd�ddS(Ns
t-iKi(R3R-(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__str__xs(R$R%R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR5wscCsOg}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_(RB(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�st�||_t|�|_t|\}}|d|dd�|_|jj|_iddfd6|_
i|_tj
�|_d|_dS(NRtbacklogit0i((t
isinstancetbytesR4tregistryRtauthkeytlistener_clienttlistenerRtNonet	id_to_objtid_to_refcountt	threadingtRLocktmutextstop(RRSRRTt
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_serverRVtaccepttOSErrortIOErrorRZtThreadthandle_requesttTruetdaemontstarttKeyboardInterruptt
SystemExitR]tclose(RR+tt((s./sys/lib/python2.7/multiprocessing/managers.pyt
serve_forever�s		cCsd}}}yvtj||j�tj||j�|j�}|\}}}}||jksttd|��t||�}Wn t	k
r�dt
�f}	nFXy||||�}Wn t	k
r�dt
�f}	n
Xd|f}	y|j|	�Wnqt	k
rp}
y|jdt
�f�Wnt	k
r<nXtj
d|	�tj
d|�tj
d|
�nX|j�dS(s)
        Handle a new connection
        s%r unrecognizeds
#TRACEBACKs#RETURNsFailure to send message: %rs ... request was %rs ... exception was %rN(RWR
tdeliver_challengeRTtanswer_challengeR)tpublicR4R;t	ExceptionRR(R	RRm(RR+tfuncnameR0trequesttignoreR-R.RAtmsgte((s./sys/lib/python2.7/multiprocessing/managers.pyRg�s4


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	tdebugRZtcurrent_threadR@R)R(RXR]RWtAttributeErrorR2R;RstgetRGRRRtfallback_mappingtEOFErrortsysRtreprRRm(RtconnR)R(RXR,R>RutidentR-R.texposedt	gettypeidtfunctiontresRxRwRtridenttrexposedttokent
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(R3(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_repr1sR8R#s	#GETVALUEcCsdS(N((RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRL: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
        RPs  %s:       refcount=%s
    %siiKs
N(
R\tacquireRXRtsortR=RYR3tjointrelease(RR+R0RR�((s./sys/lib/python2.7/multiprocessing/managers.pyRJ=s


	
'cCst|j�dS(s*
        Number of shared objects
        i(tlenRX(RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRKOscCsz�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	RyR(RWRtstdoutt
__stdout__t
__stderr__tstderrt_run_finalizersRt	terminateR�Rt	tracebackt	print_excR(RR+tpR�((s./sys/lib/python2.7/multiprocessing/managers.pyRFUs*






cOs\|jj�z:|j|\}}}}|dkrat|�dkrN|sTt�|d}	n|||�}	|dkr�t|	�}n|dk	r�t|�tks�t�t	|�t	|�}ndt
|	�}
tjd||
�|	t
|�|f|j|
<|
|jkr&d|j|
<n|j||
�|
t|�fSWd|jj�XdS(s>
        Create a new shared object and return its id
        iis%xs&%r callable returned object with id %rN(R\R�RSRWR�R4RDR2tdicttlistRR	RytsetRXRYRMttupleR�(RR+RR-R.tcallableR�tmethod_to_typeidt	proxytypeR>R�((s./sys/lib/python2.7/multiprocessing/managers.pyRGus(

cCst|j|jd�S(sL
        Return the methods of the shared object indicated by token
        i(R�RXR(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRI�scCs-|tj�_|jd�|j|�dS(s=
        Spawn a new thread to serve this connection
        s#RETURNN(s#RETURNN(RZRzR@R(RWR�(RR+R@((s./sys/lib/python2.7/multiprocessing/managers.pyRH�s
cCs9|jj�z|j|cd7<Wd|jj�XdS(Ni(R\R�RYR�(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRM�s
cCs�|jj�zj|j|dks)t�|j|cd8<|j|dkrv|j|=|j|=tjd|�nWd|jj�XdS(Niisdisposing of obj with id %r(R\R�RYR4RXR	RyR�(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRN�s
(R$R%R&RrRRoRgR�R�R�R�R}RLRJRKRFRGRIRHRMRN(((s./sys/lib/python2.7/multiprocessing/managers.pyRE�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(RWRRTt_addressRt_authkeyR�t_stateR�R�t_serializerRUt	_Listenert_Client(RRRTR^((s./sys/lib/python2.7/multiprocessing/managers.pyR�s		cCs%t|�j|j|j|jffS(N(R2tfrom_addressR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
__reduce__�scCs:|jjtjkst�t|j|j|j|j	�S(sX
        Return server object with serve_forever() method and address attribute
        (
R�R�R�R�R4REt	_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
        RTRLN(
RUR�R�R�R1RWR�R�R�R�(RR_R`R�((s./sys/lib/python2.7/multiprocessing/managers.pytconnect�scCsg|jjtjkst�|dk	rFt|d�rFtd��ntj	dt
�\}}tdt|�j
d|j|j|j|j|||f�|_djd�|jjD��}t|�jd||j_|jj�|j�|j�|_|j�tj|j_tj|t|�jd|j|j|j|j|jfd	d
�|_dS(s@
        Spawn a server process for this manager object
        R9sinitializer must be a callabletduplexRaR-t:css|]}t|�VqdS(N(R3(t.0ti((s./sys/lib/python2.7/multiprocessing/managers.pys	<genexpr>
sR7texitpriorityiN( R�R�R�R�R4RWR<t	TypeErrorR
tPipetFalseRR2t_run_serverR�R�R�R�t_processR�t	_identityR$R@RjRmR)R�R	Rt_finalize_managerR�RF(RtinitializertinitargstreadertwriterR�((s./sys/lib/python2.7/multiprocessing/managers.pyRj�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(RWt_ServerR(RRmR	RRo(	tclsRSRRTR^R�R�R�tserver((s./sys/lib/python2.7/multiprocessing/managers.pyR�s

cOs�|jjtjks!td��|j|jd|j�}z)t|dd|f||�\}}Wd|j
�Xt||j|�|fS(sP
        Create a new shared object; return the token and exposed tuple
        sserver not yet startedRTRGN(R�R�R�R�R4R�R�R�R1RWRmR(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
        RTRJN(R�R�R�R1RWRm(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
        RTRKN(R�R�R�R1RWRm(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(RF(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 managerRTRFNR�g����smanager still aliveR�s'trying to `terminate()` manager processg����s#manager still alive after terminate(tis_aliveR	RR1RWRmRsR�R<R�R�R�R�Rt_address_to_localtKeyError(tprocessRRTR!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�xa|j�D]P\}}t|�tks�t	d|��t|�tks|t	d|��q|Wn|||�f|j�<|r ��fd�}	�|	_
t|�|	�ndS(s9
        Register a typeid with the manager type
        R�t	_exposed_t_method_to_typeid_s%r is not a stringc	s�tjd��|j�||�\}}�||jd|d|jd|�}|j|jd|j�}t|dd|j	f�|S(Ns)requesting creation of a shared %r objecttmanagerRTR�RN(
R	RyR�R�R�R�RR1RWR(RR-R.R�texptproxyR�(R�R(s./sys/lib/python2.7/multiprocessing/managers.pyR?�sN(t__dict__R�tcopyRWt	AutoProxyR;RR2R3R4R$tsetattr(
R�RR�R�R�R�t
create_methodtkeyR�R?((R�Rs./sys/lib/python2.7/multiprocessing/managers.pytregister~s 	")
	N(((R$R%R&R�RER�RWRR�R�R�RjtclassmethodR�R�R�R�R�R�R�tstaticmethodR�tpropertyRRhR�(((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((R2(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�R|RRWR	tForkAwareLocalR�R�t_tlst_idsett_tokenRt_idt_managerR�RUR�RR�RRTt_increfR�t_after_fork(RR�R^R�RTR�RMt	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|RTRH(R	RyRR@RZRzR�R�RR�R1RWR�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�RTR�RNN(R�R
R{R	RyRZRzR@R�R(R�R)R�R�RR�RR�R�R�R1RWRR*(RR,R-R.R�R/R0R�R�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(NRTRMs	INCREF %rR-R�i
(R�R�RR�R1RWR�R	RyRR�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 %rRTRNs... decref failed %ss%DECREF %r -- manager already shutdownR
s-thread %r has no more proxies so closing conn(tdiscardRRWR�R�R�R	RyRR1RsR<RZRzR@R
Rm(R�RTR!ttlstidsetR�R�Rx((s./sys/lib/python2.7/multiprocessing/managers.pyR�s	
cCsBd|_y|j�Wn$tk
r=}tjd|�nXdS(Nsincref failed: %s(RWR�R�RsR	R(RRx((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(NRTt_isautoR�(R
tthread_is_spawningR�R;R�R�tRebuildProxyR�R�R�R2(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(R2R$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�RsR�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR8Ss
N((R$R%R&R�R	tForkAwareThreadLockR�RWRhRR�R�R�R�R�R�R�R�RR#R8(((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.
    RbiRMt_inheritingN(	R;RRWRRXRtpopRhR�(RAR�R^R.R�RM((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�R2RR�(R@R�t_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`
    iRTRINs
AutoProxy[%s]R�RM(RURWRR1RmR�RRTR
RRhR�(
R�R^R�RTR�RMR�R�R	R�((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(NRCs%s=%rs
Namespace(%s)s, (R�Rt
startswithR=R�R3R�(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.pyR|�scCs
||_dS(N(R(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs dt|�j|j|jfS(Ns
%s(%r, %r)(R2R$RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s(	R$R%RhRR|R�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(tthrowRmcCs|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(NRm(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRm�s(s__next__snextssendsthrowsclose(	R$R%R�RRRR(RRm(((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�RhR�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�RWRRR(((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�R R�R�RWR(((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(NiRCR�R"(tobjectR"(RR�t
callmethod((s./sys/lib/python2.7/multiprocessing/managers.pyt__getattr__�scCsH|ddkr#tj|||�Stj|d�}|d||f�S(NiRCR�R#(R%R#R"(RR�R�R&((s./sys/lib/python2.7/multiprocessing/managers.pyR#scCsB|ddkr tj||�Stj|d�}|d|f�S(NiRCR�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'R#R$(((s./sys/lib/python2.7/multiprocessing/managers.pyR!�s		t
ValueProxycBs/eZdZd�Zd�Zeee�ZRS(R|R�cCs
|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(sgetsset(R$R%R�R|R�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(NR7(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt__iadd__scCs|jd|f�|S(NR<(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR< s(R$R%R>R<(((s./sys/lib/python2.7/multiprocessing/managers.pyR=s	t	DictProxyR�R�R|thas_keytpopitemt
setdefaultRt
ArrayProxyt	PoolProxytapplytapply_asyncRmtimaptimap_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
JoinableQueuetEventtLockR[t	SemaphoretBoundedSemaphoret	ConditionRR�R�RR�R�(Ut__all__tosRtweakrefRZRRMR�RtmultiprocessingRRRRR	R
tmultiprocessing.processRtmultiprocessing.forkingRR
RRtmultiprocessing.utilRRtcPickleRtImportErrorR�RR�R@R2R;t
view_typesR%RR1R*RsR5RBRDRER�R_R`tXmlListenert	XmlClientRURR�R�RRR
RWRhR�RRRRRRRR!R(R)R=R?RCRDR�RRORPR[RQRRRSR�R�R�(((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].