/usr/lib64/python3.9/multiprocessing/__pycache__
NameSizeModeActions
connection.cpython-39.opt-1.pyc254080644editdlrm
connection.cpython-39.opt-2.pyc234090644editdlrm
connection.cpython-39.pyc256150644editdlrm
context.cpython-39.opt-1.pyc130200644editdlrm
context.cpython-39.opt-2.pyc115600644editdlrm
context.cpython-39.pyc130200644editdlrm
forkserver.cpython-39.opt-1.pyc83710644editdlrm
forkserver.cpython-39.opt-2.pyc75840644editdlrm
forkserver.cpython-39.pyc84170644editdlrm
heap.cpython-39.opt-1.pyc76250644editdlrm
heap.cpython-39.opt-2.pyc74450644editdlrm
heap.cpython-39.pyc76350644editdlrm
managers.cpython-39.opt-1.pyc407120644editdlrm
managers.cpython-39.opt-2.pyc367350644editdlrm
managers.cpython-39.pyc409080644editdlrm
pool.cpython-39.opt-1.pyc250910644editdlrm
pool.cpython-39.opt-2.pyc232230644editdlrm
pool.cpython-39.pyc251380644editdlrm
popen_fork.cpython-39.opt-1.pyc25120644editdlrm
popen_fork.cpython-39.opt-2.pyc25120644editdlrm
popen_fork.cpython-39.pyc25120644editdlrm
popen_forkserver.cpython-39.opt-1.pyc24450644editdlrm
popen_forkserver.cpython-39.opt-2.pyc24450644editdlrm
popen_forkserver.cpython-39.pyc24450644editdlrm
popen_spawn_posix.cpython-39.opt-1.pyc23480644editdlrm
popen_spawn_posix.cpython-39.opt-2.pyc23480644editdlrm
popen_spawn_posix.cpython-39.pyc23480644editdlrm
popen_spawn_win32.cpython-39.opt-1.pyc34360644editdlrm
popen_spawn_win32.cpython-39.opt-2.pyc33550644editdlrm
popen_spawn_win32.cpython-39.pyc34570644editdlrm
process.cpython-39.opt-1.pyc104000644editdlrm
process.cpython-39.opt-2.pyc89520644editdlrm
process.cpython-39.pyc110090644editdlrm
queues.cpython-39.opt-1.pyc101170644editdlrm
queues.cpython-39.opt-2.pyc99630644editdlrm
queues.cpython-39.pyc101760644editdlrm
reduction.cpython-39.opt-1.pyc82850644editdlrm
reduction.cpython-39.opt-2.pyc75450644editdlrm
reduction.cpython-39.pyc82850644editdlrm
resource_sharer.cpython-39.opt-1.pyc52410644editdlrm
resource_sharer.cpython-39.opt-2.pyc48210644editdlrm
resource_sharer.cpython-39.pyc52840644editdlrm
resource_tracker.cpython-39.opt-1.pyc53880644editdlrm
resource_tracker.cpython-39.opt-2.pyc50280644editdlrm
resource_tracker.cpython-39.pyc54570644editdlrm
sharedctypes.cpython-39.opt-1.pyc70480644editdlrm
sharedctypes.cpython-39.opt-2.pyc67840644editdlrm
sharedctypes.cpython-39.pyc70970644editdlrm
shared_memory.cpython-39.opt-1.pyc142320644editdlrm
shared_memory.cpython-39.opt-2.pyc115000644editdlrm
shared_memory.cpython-39.pyc144420644editdlrm
spawn.cpython-39.opt-1.pyc66780644editdlrm
spawn.cpython-39.opt-2.pyc62010644editdlrm
spawn.cpython-39.pyc67210644editdlrm
synchronize.cpython-39.opt-1.pyc110870644editdlrm
synchronize.cpython-39.opt-2.pyc110870644editdlrm
synchronize.cpython-39.pyc113880644editdlrm
util.cpython-39.opt-1.pyc114700644editdlrm
util.cpython-39.opt-2.pyc106500644editdlrm
util.cpython-39.pyc115060644editdlrm
__init__.cpython-39.opt-1.pyc6540644editdlrm
__init__.cpython-39.opt-2.pyc6540644editdlrm
__init__.cpython-39.pyc6540644editdlrm
Edit: /usr/lib64/python3.9/multiprocessing/__pycache__/managers.cpython-39.pyc (40908B)
a ´iǸã@sLgd¢ZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZmZmZddl mZdd l mZdd l mZdd l mZzdd l mZWneyÖd ZYn0dZe d¡dd„Ze eje¡dd„dDƒZedeu�r8dd„ZeD]Ze ee¡�q$Gdd„de ƒZ!difdd„Z"dd„Z#Gdd„de$ƒZ%d d!„Z&d"d#„Z'Gd$d%„d%e ƒZ(Gd&d'„d'e ƒZ)e j*e j+fe j,e j-fd(œZ.Gd)d*„d*e ƒZ/Gd+d,„d,e0ƒZ1Gd-d.„d.e ƒZ2d/d0„Z3ifd1d2„Z4dmd3d4„Z5Gd5d6„d6e ƒZ6Gd7d8„d8e ƒZ7dnd9d:„Z8Gd;d<„d„d>e2ƒZ:Gd?d@„d@e:ƒZ;GdAdB„dBe2ƒZGdGdH„dHe2ƒZ?e4dIdJƒZ@GdKdL„dLe@ƒZAe4dMdNƒZBdOdPieB_Ce4dQdRƒZDe4dSdTƒZEdUdUdUdPdPdVœeE_CGdWdS„dSeEƒZFGdXdY„dYe/ƒZGeG dZejH¡eG d[ejH¡eG d\ejIe<¡eG d]ejJe:¡eG d^ejKe:¡eG d_ejLe:¡eG d`ejMe:¡eG daejNe;¡eG dbejOe=¡eG dcejPeF¡eG ddeeA¡eG deeQeB¡eG d8e7e?¡eG d:e8eD¡eG d6e6e>¡eGjdPe9d df�eGjdUd dg�e�rHGdhdi„diƒZRGdjdk„dke(ƒZSGdld„de/ƒZTdS)o)Ú BaseManagerÚ SyncManagerÚ BaseProxyÚTokenéN)Úgetpid)Ú format_excé)Ú connection)Ú reductionÚget_spawning_popenÚ ProcessError)Úpool)Úprocess)Úutil)Ú get_context)Ú shared_memoryFTÚSharedMemoryManagercCstj|j| ¡ffS©N)ÚarrayÚtypecodeÚtobytes)Úa©rú0/usr/lib64/python3.9/multiprocessing/managers.pyÚ reduce_array/srcCsg|]}tti|ƒƒƒ‘qSr)ÚtypeÚgetattr©Ú.0ÚnamerrrÚ 3ór )ÚitemsÚkeysÚvaluescCstt|ƒffSr)Úlist©ÚobjrrrÚrebuild_as_list5sr(c@s4eZdZdZdZdd„Zdd„Zdd„Zd d „Zd S) rz3 Type to uniquely identify a shared object ©ÚtypeidÚaddressÚidcCs||||_|_|_dSrr))Úselfr*r+r,rrrÚ__init__DszToken.__init__cCs|j|j|jfSrr)©r-rrrÚ __getstate__GszToken.__getstate__cCs|\|_|_|_dSrr)©r-ÚstaterrrÚ __setstate__JszToken.__setstate__cCsd|jj|j|j|jfS)Nz %s(typeid=%r, address=%r, id=%r))Ú __class__Ú__name__r*r+r,r/rrrÚ__repr__MsÿzToken.__repr__N) r5Ú __module__Ú __qualname__Ú__doc__Ú __slots__r.r0r3r6rrrrr>s rrcCs8| ||||f¡| ¡\}}|dkr*|St||ƒ‚dS)zL Send a message to manager using connection `c` and return response ú#RETURNN)ÚsendÚrecvÚconvert_to_error)Úcr,Ú methodnameÚargsÚkwdsÚkindÚresultrrrÚdispatchUs  rEcCsd|dkr |S|dvrRt|tƒs4td ||t|ƒ¡ƒ‚|dkrHtd|ƒSt|ƒSntd |¡ƒSdS)Nú#ERROR)ú #TRACEBACKú#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrHzUnserializable message: %s zUnrecognized message type {!r})Ú isinstanceÚstrÚ TypeErrorÚformatrÚ RemoteErrorÚ ValueError)rCrDrrrr>_s  ÿÿ  r>c@seZdZdd„ZdS)rMcCsdt|jdƒdS)NzM --------------------------------------------------------------------------- rzK---------------------------------------------------------------------------)rJrAr/rrrÚ__str__oszRemoteError.__str__N)r5r7r8rOrrrrrMnsrMcCs2g}t|ƒD] }t||ƒ}t|ƒr | |¡q |S)z4 Return a list of names of methods of `obj` )ÚdirrÚcallableÚappend)r'ÚtemprÚfuncrrrÚ all_methodsvs    rUcCsdd„t|ƒDƒS)zP Return a list of names of methods of `obj` which do not start with '_' cSsg|]}|ddkr|‘qS)rÚ_rrrrrr …r!z"public_methods..)rUr&rrrÚpublic_methods�srWc@s¬eZdZdZgd¢Zdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z e e e dœZ dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&S)'ÚServerzM Server class which runs in a process controlled by a manager object ) ÚshutdownÚcreateÚaccept_connectionÚ get_methodsÚ debug_infoÚnumber_of_objectsÚdummyÚincrefÚdecrefcCsxt|tƒstd |t|ƒ¡ƒ‚||_t |¡|_t |\}}||dd�|_ |j j |_ ddi|_ i|_ i|_t ¡|_dS)Nz&Authkey {0!r} is type {1!s}, not bytesé)r+ÚbacklogÚ0©Nr)rIÚbytesrKrLrÚregistryrÚAuthenticationStringÚauthkeyÚlistener_clientÚlistenerr+Ú id_to_objÚid_to_refcountÚid_to_local_proxy_objÚ threadingÚLockÚmutex)r-rgr+riÚ serializerÚListenerÚClientrrrr.’s ÿÿ    zServer.__init__c CsÐt ¡|_|t ¡_z„tj|jd�}d|_|  ¡z|j  ¡sL|j  d¡q4Wnt t fydYn0WtjtjkrŽt d¡tjt_tjt_t d¡n2tjtjkrÀt d¡tjt_tjt_t d¡0dS)z( Run the server forever )ÚtargetTrzresetting stdout, stderrrN)roÚEventÚ stop_eventrÚcurrent_processÚ_manager_serverÚThreadÚaccepterÚdaemonÚstartÚis_setÚwaitÚKeyboardInterruptÚ SystemExitÚsysÚstdoutÚ __stdout__rÚdebugÚ __stderr__ÚstderrÚexit)r-r{rrrÚ serve_forever¤s*      ü  zServer.serve_forevercCsLz|j ¡}Wnty$YqYn0tj|j|fd�}d|_| ¡qdS)N©rurAT)rkÚacceptÚOSErrorrorzÚhandle_requestr|r})r-r?Útrrrr{ºs  zServer.accepterc CsNd}}}zTt ||j¡t ||j¡| ¡}|\}}}}||jvsTJd|ƒ‚t||ƒ}Wnty|dtƒf} YnB0z||g|¢Ri|¤Ž}Wnty´dtƒf} Yn 0d|f} z|  | ¡Wntt�y@} zZz|  dtƒf¡Wnt�yYn0t   d| ¡t   d|¡t   d| ¡WYd} ~ n d} ~ 00|  ¡dS)z) Handle a new connection Nz%r unrecognizedrGr;zFailure to send message: %rz ... request was %rú ... exception was %r) r Údeliver_challengeriÚanswer_challenger=ÚpublicrÚ Exceptionrr<rÚinfoÚclose) r-r?ÚfuncnamerDÚrequestÚignorerArBrTÚmsgÚerrrr�Äs4      "zServer.handle_requestc CsÒt dt ¡j¡|j}|j}|j}|j  ¡�sÎ�z:d}}|ƒ}|\}}} } z||\}} } WnPt y°} z8z|j |\}} } Wnt yš| ‚Yn0WYd} ~ n d} ~ 00|| vrÐt d|t |ƒ| fƒ‚t||ƒ}z|| i| ¤Ž}Wn.t�y}zd|f}WYd}~nXd}~00| �o,|  |d¡}|�rb| |||¡\}}t||j|ƒ}d||ff}nd|f}WnÆt �yè|du�r’dtƒf}nRz2|j|}|||||g| ¢Ri| ¤Ž}d|f}Wnt�yâdtƒf}Yn0YnLt�yt dt ¡j¡t d ¡Ynt�y2dtƒf}Yn0z4z ||ƒWn"t�yd|d tƒfƒYn0Wq$t�yÊ}zHt d t ¡j¡t d |¡t d |¡| ¡t d¡WYd}~q$d}~00q$dS)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=%rrFú#PROXYr;rGz$got EOF -- exiting thread serving %rrrHzexception in thread serving %rz ... message was %rr�r)rr…roÚcurrent_threadrr=r<rlrwr~ÚKeyErrorrnÚAttributeErrorrrr“ÚgetrZrr+rÚfallback_mappingÚEOFErrorr‚rˆr”r•)r-Úconnr=r<rlr@r'r—ÚidentrArBÚexposedÚ gettypeidÚkeÚfunctionÚresršr™r*ZridentZrexposedÚtokenZ fallback_funcrDrrrÚ serve_clientæsŽÿ  ÿ    ÿÿ     ÿÿÿ ÿ ÿ  zServer.serve_clientcCs|Srr©r-r¢r£r'rrrÚfallback_getvalue7szServer.fallback_getvaluecCst|ƒSr©rJr«rrrÚ fallback_str:szServer.fallback_strcCst|ƒSr)Úreprr«rrrÚ fallback_repr=szServer.fallback_repr)rOr6ú #GETVALUEcCsdSrr©r-r?rrrr_Fsz Server.dummyc Cs�|j�vg}t|j ¡ƒ}| ¡|D]<}|dkr&| d||j|t|j|dƒdd…f¡q&d |¡WdƒS1s‚0YdS)zO Return some info --- useful to spot problems with refcounting rdz %s: refcount=%s %srNéKÚ ) rqr%rmr#ÚsortrRrJrlÚjoin)r-r?rDr#r£rrrr]Is ÿÿzServer.debug_infocCs t|jƒS)z* Number of shared objects )Úlenrmr²rrrr^YszServer.number_of_objectscCsVzDzt d¡| d¡Wnddl}| ¡Yn0W|j ¡n |j ¡0dS)z' Shutdown this process z!manager received shutdown message©r;NrN)rr…r<Ú tracebackÚ print_excrwÚset)r-r?r¹rrrrY`s zServer.shutdownc Os|j�â|j|\}}}}|durD|s2t|ƒdkr:tdƒ‚|d} n||i|¤Ž} |durbt| ƒ}|dur˜t|tƒsˆtd |t |ƒ¡ƒ‚t |ƒt |ƒ}dt | ƒ} t   d|| ¡| t|ƒ|f|j| <| |jvrÚd|j| <Wdƒn1sî0Y| || ¡| t|ƒfS)z> Create a new shared object and return its id Nrz4Without 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)rqrgr·rNrWrIÚdictrKrLrr%r,rr…r»rlrmr`Útuple) r-r?r*rArBrQr¤Úmethod_to_typeidÚ proxytyper'r£rrrrZms6ÿ ÿ  ÿÿ  ( z Server.createcCst|j|jdƒS)zL Return the methods of the shared object indicated by token r)r½rlr,)r-r?r©rrrr\‘szServer.get_methodscCs"|t ¡_| d¡| |¡dS)z= Spawn a new thread to serve this connection r¸N)rorœrr<rª)r-r?rrrrr[—s  zServer.accept_connectionc Cs¬|j�’z|j|d7<Wnjtyˆ}zR||jvrpd|j|<|j||j|<|j|\}}}t d|¡n|‚WYd}~n d}~00Wdƒn1sž0YdS)Nrz&Server re-enabled tracking & INCREF %r)rqrmr�rnrlrr…)r-r?r£r¦r'r¤r¥rrrr`Ÿs  ÿz Server.increfcCsð||jvr$||jvr$t d|¡dS|j�d|j|dkrXtd ||j||j|¡ƒ‚|j|d8<|j|dkr€|j|=Wdƒn1s”0Y||jvrìd|j|<t d|¡|j�|j|=Wdƒn1sâ0YdS)NzServer DECREF skipping %rrz+Id {0!s} ({1!r}) has refcount {2:n}, not 1+r)NrNzdisposing of obj with id %r)rmrnrr…rqÚAssertionErrorrLrl)r-r?r£rrrra±s* ÿ  þÿ&   z Server.decrefN)r5r7r8r9r’r.r‰r{r�rªr¬r®r°r r_r]r^rYrZr\r[r`rarrrrrX‹s. "Qý $rXc@seZdZdgZdZdZdZdS)ÚStateÚvaluerréN)r5r7r8r:ÚINITIALÚSTARTEDÚSHUTDOWNrrrrrÁÑsrÁ)ÚpickleÚ xmlrpclibc@s¢eZdZdZiZeZd"dd„Zdd„Zdd „Z d#d d „Z e d$d d„ƒZ dd„Z d%dd„Zdd„Zdd„Zdd„Zdd„Zedd„ƒZedd„ƒZe d&d d!„ƒZdS)'rz! Base class for managers NrÇcCs\|durt ¡j}||_t |¡|_tƒ|_tj|j_ ||_ t |\|_ |_ |pTtƒ|_dSr)rrxriÚ_addressrhÚ_authkeyrÁÚ_staterÄrÂÚ _serializerrjZ _ListenerÚ_ClientrÚ_ctx)r-r+rirrÚctxrrrr.ës   zBaseManager.__init__cCsf|jjtjkrP|jjtjkr&tdƒ‚n*|jjtjkr>tdƒ‚ntd |jj¡ƒ‚t|j |j |j |j ƒS)zX Return server object with serve_forever() method and address attribute úAlready started serverúManager has shut downúUnknown state {!r}) rËrÂrÁrÄrÅr rÆrLrXÚ _registryrÉrÊrÌr/rrrÚ get_server÷s   ÿ ÿzBaseManager.get_servercCs8t|j\}}||j|jd�}t|ddƒtj|j_dS)z> Connect manager object to the server process ©riNr_) rjrÌrÉrÊrErÁrÅrËrÂ)r-rsrtr¢rrrÚconnects zBaseManager.connectrc Cs4|jjtjkrP|jjtjkr&tdƒ‚n*|jjtjkr>tdƒ‚ntd |jj¡ƒ‚|durht|ƒsht dƒ‚t j dd�\}}|j j t|ƒj|j|j|j|j|||fd�|_d  d d „|jjDƒ¡}t|ƒjd ||j_|j ¡| ¡| ¡|_| ¡tj|j_tj|t|ƒj|j|j|j|j|jfd d�|_ dS)z@ Spawn a server process for this manager object rÐrÑrÒNzinitializer must be a callableF)ÚduplexrŠú:css|]}t|ƒVqdSrr­)rÚirrrÚ (r!z$BaseManager.start..ú-r©rAÚ exitpriority)!rËrÂrÁrÄrÅr rÆrLrQrKr ÚPiperÎÚProcessrÚ _run_serverrÓrÉrÊrÌÚ_processr¶Ú _identityr5rr}r•r=rÚFinalizeÚ_finalize_managerrÍrY)r-Ú initializerÚinitargsÚreaderÚwriterr£rrrr}s>   ÿ  ÿþ     ÿüzBaseManager.startc Cs^t tjtj¡|dur ||Ž| ||||¡}| |j¡| ¡t d|j¡|  ¡dS)z@ Create a server, report its address and run it Nzmanager serving at %r) ÚsignalÚSIGINTÚSIG_IGNÚ_Serverr<r+r•rr”r‰) Úclsrgr+rirrrèråræÚserverrrrrà:s zBaseManager._run_servercOsl|jjtjksJdƒ‚|j|j|jd�}z&t|dd|f||ƒ\}}W| ¡n | ¡0t ||j|ƒ|fS)zP Create a new shared object; return the token and exposed tuple zserver not yet startedrÕNrZ) rËrÂrÁrÅrÍrÉrÊrEr•r)r-r*rArBr¢r,r¤rrrÚ_createQs zBaseManager._createcCs*|jdur&|j |¡|j ¡s&d|_dS)zC Join the manager process (if it has been spawned) N)rár¶Úis_alive©r-Útimeoutrrrr¶]s   zBaseManager.joincCs8|j|j|jd�}zt|ddƒW| ¡S| ¡0dS)zS Return some info about the servers shared objects and connections rÕNr]©rÍrÉrÊrEr•©r-r¢rrrÚ _debug_infofs  þzBaseManager._debug_infocCs8|j|j|jd�}zt|ddƒW| ¡S| ¡0dS)z5 Return the number of shared objects rÕNr^rórôrrrÚ_number_of_objectsps  þzBaseManager._number_of_objectscCsj|jjtjkr| ¡|jjtjkrf|jjtjkr.temp) Ú__dict__rÓÚcopyÚ AutoProxyrr%r"rrJr5Úsetattr) rír*rQr¿r¤r¾Ú create_methodÚkeyrÂrSrrrÚregister®s$   ÿÿ  zBaseManager.register)NNrÇN)Nr)Nr)N)NNNNT)r5r7r8r9rÓrXrìr.rÔrÖr}Ú classmethodràrïr¶rõrör÷rüÚ staticmethodräÚpropertyr+r rrrrräs4ÿ  +ÿ       ÿrc@seZdZdd„Zdd„ZdS)ÚProcessLocalSetcCst |dd„¡dS)NcSs| ¡Sr)Úclearr&rrrÚÜr!z*ProcessLocalSet.__init__..)rÚregister_after_forkr/rrrr.ÛszProcessLocalSet.__init__cCs t|ƒdfSre)rr/rrrÚ __reduce__ÝszProcessLocalSet.__reduce__N)r5r7r8r.rrrrrrÚsrc@s€eZdZdZiZe ¡Zddd„Zdd„Z d ifd d „Z d d „Z dd„Z e dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„ZdS)rz. A base for proxies of shared objects NTFc Csòtj�Btj |jd¡}|dur:t ¡tƒf}|tj|j<Wdƒn1sN0Y|d|_|d|_ ||_ |j j |_ ||_ ||_t|d|_||_|dur²t |¡|_n"|j durÈ|j j|_n t ¡j|_|rà| ¡t |tj¡dS)Nrr)rÚ_mutexrÿrŸr+rÚForkAwareLocalrÚ_tlsÚ_idsetÚ_tokenr,Ú_idÚ_managerrÌrjrÍÚ_owned_by_managerrrhrÊrxriÚ_increfrÚ _after_fork) r-r©rrrrir¤r`Ú manager_ownedZ tls_idsetrrrr.ës**      zBaseProxy.__init__cCsdt d¡t ¡j}t ¡jdkr4|dt ¡j7}|j|jj |j d�}t |dd|fƒ||j _ dS)Nzmaking connection to managerÚ MainThreadú|rÕr[)rr…rrxrrorœrÍrr+rÊrErr )r-rr¢rrrÚ_connects  zBaseProxy._connectrc Csèz |jj}Wn4ty@t dt ¡j¡| ¡|jj}Yn0|  |j |||f¡|  ¡\}}|dkrn|S|dkrÚ|\}}|j j |jd} |jj|_| ||j|j |j|d�} |j|j|jd�}t|dd|jfƒ| St||ƒ‚dS) zV Try to call a method of the referent and return a copy of the result z#thread %r does not own a connectionr;r›éÿÿÿÿrrÕNra)rr ržrr…rorœrr#r<rr=rrÓr*rr+rÌrÊrÍrEr,r>) r-r@rArBr¢rCrDr¤r©r¿rrrrÚ _callmethods0  ÿ   þzBaseProxy._callmethodcCs | d¡S)z9 Get a copy of the value of the referent r±©r%r/rrrÚ _getvalue;szBaseProxy._getvaluec Csœ|jrt d|jj¡dS|j|jj|jd�}t|dd|j fƒt d|jj¡|j   |j ¡|j oj|j j }tj|tj|j|j||j|j |jfdd�|_dS)Nz%owned_by_manager skipped INCREF of %rrÕr`z INCREF %ré rÜ)rrr…rr,rÍr+rÊrErrÚaddrrËrãrÚ_decrefrÚ_close)r-r¢r2rrrrAs  ÿüzBaseProxy._increfc CsÆ| |j¡|dus |jtjkr†z2t d|j¡||j|d�}t|dd|jfƒWq”t y‚}zt d|¡WYd}~q”d}~00nt d|j¡|sÂt |dƒrÂt dt   ¡j ¡|j ¡|`dS)Nz DECREF %rrÕraz... decref failed %sz%DECREF %r -- manager already shutdownr z-thread %r has no more proxies so closing conn)Údiscardr,rÂrÁrÅrr…r+rEr“rþrorœrr r•)r©rir2ZtlsZidsetrÍr¢ršrrrr*Us $ÿ zBaseProxy._decrefc CsJd|_z | ¡Wn2tyD}zt d|¡WYd}~n d}~00dS)Nzincref failed: %s)rrr“rr”)r-ršrrrrns  zBaseProxy._after_forkcCs^i}tƒdur|j|d<t|ddƒrB|j|d<tt|j|j|ffStt|ƒ|j|j|ffSdS)NriÚ_isautoFr¤) r rÊrrÚ RebuildProxyr rrÌr©r-rBrrrrvs    ÿÿzBaseProxy.__reduce__cCs| ¡Sr)r')r-ÚmemorrrÚ __deepcopy__ƒszBaseProxy.__deepcopy__cCsdt|ƒj|jjt|ƒfS)Nz<%s object, typeid %r at %#x>)rr5rr*r,r/rrrr6†sÿzBaseProxy.__repr__cCs8z | d¡WSty2t|ƒdd…dYS0dS)zV Return representation of the referent (or a fall-back if that fails) r6Nr$z; '__str__()' failed>)r%r“r¯r/rrrrOŠs  zBaseProxy.__str__)NNNTF)r5r7r8r9rÿrÚForkAwareThreadLockrr.r#r%r'rrr*rrr1r6rOrrrrräs"ÿ )   rcCsˆtt ¡ddƒ}|rT|j|jkrTt d|¡d|d<|j|jvrT|j|j|j|j<|  dd¡optt ¡ddƒ }|||fd|i|¤ŽS) z5 Function used for unpickling proxy objects. ryNz*Rebuild a proxy owned by manager, token=%rTr r`Z _inheritingF) rrrxr+rr…r,rnrlÚpop)rTr©rrrBrîr`rrrr.—s   ÿ  þr.cCsnt|ƒ}z|||fWSty(Yn0i}|D]}td||f|ƒq2t|tf|ƒ}||_||||f<|S)zB Return a proxy type whose methods are given by `exposed` zOdef %s(self, /, *args, **kwds): return self._callmethod(%r, args, kwds))r½r�Úexecrrr)rr¤Ú_cacheZdicÚmethÚ ProxyTyperrrÚ MakeProxyType¬s  ÿÿ r8c Cs t|d}|durJ||j|d�}zt|dd|fƒ}W| ¡n | ¡0|dur`|dur`|j}|durrt ¡j}td|j |ƒ} | ||||||d�} d| _ | S)z* Return an auto-proxy for `token` rNrÕr\z AutoProxy[%s])rrir`r T) rjr+rEr•rÊrrxrir8r*r-) r©rrrrir¤r`r rÍr¢r7rrrrr Âs    ÿr c@seZdZdd„Zdd„ZdS)Ú NamespacecKs|j |¡dSr)rÚupdater/rrrr.àszNamespace.__init__cCsZt|j ¡ƒ}g}|D]$\}}| d¡s| d||f¡q| ¡d|jjd |¡fS)NrVz%s=%rz%s(%s)z, ) r%rr"Ú startswithrRrµr4r5r¶)r-r"rSrrÂrrrr6âs  zNamespace.__repr__N)r5r7r8r.r6rrrrr9ßsr9c@s8eZdZd dd„Zdd„Zdd„Zdd „ZeeeƒZd S) ÚValueTcCs||_||_dSr)Ú _typecodeÚ_value)r-rrÂÚlockrrrr.ìszValue.__init__cCs|jSr©r>r/rrrrŸïsz Value.getcCs ||_dSrr@©r-rÂrrrr»ñsz Value.setcCsdt|ƒj|j|jfS)Nz %s(%r, %r))rr5r=r>r/rrrr6ószValue.__repr__N)T) r5r7r8r.rŸr»r6rrÂrrrrr<ës  r<cCs t ||¡Sr)r)rÚsequencer?rrrÚArray÷srCc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) Ú IteratorProxy)Ú__next__r<Úthrowr•cCs|Srrr/rrrÚ__iter__szIteratorProxy.__iter__cGs | d|¡S)NrEr&©r-rArrrrEszIteratorProxy.__next__cGs | d|¡S)Nr<r&rHrrrr<szIteratorProxy.sendcGs | d|¡S)NrFr&rHrrrrFszIteratorProxy.throwcGs | d|¡S)Nr•r&rHrrrr•szIteratorProxy.closeN) r5r7r8rrGrEr<rFr•rrrrrDþs rDc@s2eZdZdZd dd„Zdd„Zdd „Zd d „ZdS) Ú AcquirerProxy)ÚacquireÚreleaseTNcCs"|dur|fn||f}| d|¡S©NrJr&)r-ÚblockingròrArrrrJszAcquirerProxy.acquirecCs | d¡S©NrKr&r/rrrrKszAcquirerProxy.releasecCs | d¡SrLr&r/rrrr÷szAcquirerProxy.__enter__cCs | d¡SrNr&rørrrrüszAcquirerProxy.__exit__)TN)r5r7r8rrJrKr÷rürrrrrI s  rIc@s6eZdZdZd dd„Zd dd„Zdd „Zdd d „ZdS)ÚConditionProxy)rJrKrÚnotifyÚ notify_allNcCs| d|f¡S©Nrr&rñrrrrszConditionProxy.waitrcCs| d|f¡S)NrPr&)r-ÚnrrrrPszConditionProxy.notifycCs | d¡S)NrQr&r/rrrrQszConditionProxy.notify_allcCsd|ƒ}|r|S|dur$t ¡|}nd}d}|s`|durN|t ¡}|dkrNq`| |¡|ƒ}q,|S)Nr)ÚtimeÚ monotonicr)r-Ú predicateròrDÚendtimeÚwaittimerrrÚwait_for!s  zConditionProxy.wait_for)N)r)N)r5r7r8rrrPrQrYrrrrrOs   rOc@s2eZdZdZdd„Zdd„Zdd„Zd d d „ZdS) Ú EventProxy)r~r»rrcCs | d¡S)Nr~r&r/rrrr~6szEventProxy.is_setcCs | d¡S©Nr»r&r/rrrr»8szEventProxy.setcCs | d¡S)Nrr&r/rrrr:szEventProxy.clearNcCs| d|f¡SrRr&rñrrrr<szEventProxy.wait)N)r5r7r8rr~r»rrrrrrrZ4s rZc@sNeZdZdZddd„Zdd„Zdd„Zed d „ƒZed d „ƒZ ed d„ƒZ dS)Ú BarrierProxy)Ú__getattribute__rÚabortÚresetNcCs| d|f¡SrRr&rñrrrrBszBarrierProxy.waitcCs | d¡S)Nr^r&r/rrrr^DszBarrierProxy.abortcCs | d¡S)Nr_r&r/rrrr_FszBarrierProxy.resetcCs | dd¡S)Nr])Úpartiesr&r/rrrr`HszBarrierProxy.partiescCs | dd¡S)Nr])Ú n_waitingr&r/rrrraKszBarrierProxy.n_waitingcCs | dd¡S)Nr])Úbrokenr&r/rrrrbNszBarrierProxy.broken)N) r5r7r8rrr^r_rr`rarbrrrrr\@s   r\c@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚNamespaceProxy)r]Ú __setattr__Ú __delattr__cCs0|ddkrt ||¡St |d¡}|d|fƒS)NrrVr%r])Úobjectr]©r-r Ú callmethodrrrÚ __getattr__Us   zNamespaceProxy.__getattr__cCs4|ddkrt |||¡St |d¡}|d||fƒS)NrrVr%rd)rfrdr])r-r rÂrhrrrrdZs  zNamespaceProxy.__setattr__cCs0|ddkrt ||¡St |d¡}|d|fƒS)NrrVr%re)rfrer]rgrrrre_s   zNamespaceProxy.__delattr__N)r5r7r8rrirdrerrrrrcSsrcc@s4eZdZdZdd„Zdd„ZeeeƒZee j ƒZ dS)Ú ValueProxy)rŸr»cCs | d¡S)NrŸr&r/rrrrŸhszValueProxy.getcCs| d|f¡Sr[r&rArrrr»jszValueProxy.setN) r5r7r8rrŸr»rrÂrÚtypesÚ GenericAliasÚ__class_getitem__rrrrrjfs  rjÚ BaseListProxy)Ú__add__Ú __contains__Ú __delitem__Ú __getitem__Ú__len__Ú__mul__Ú __reversed__Ú__rmul__Ú __setitem__rRÚcountÚextendÚindexÚinsertr3ÚremoveÚreverserµÚ__imul__c@seZdZdd„Zdd„ZdS)Ú ListProxycCs| d|f¡|S)Nryr&rArrrÚ__iadd__xszListProxy.__iadd__cCs| d|f¡|S)Nr~r&rArrrr~{szListProxy.__imul__N)r5r7r8r€r~rrrrrwsrÚ DictProxy)rprqrrrGrsrwrrrŸr"r#r3ÚpopitemÚ setdefaultr:r$rGÚIteratorÚ ArrayProxy)rsrrrwÚ PoolProxy) ZapplyÚ apply_asyncr•ÚimapÚimap_unorderedr¶ÚmapÚ map_asyncÚstarmapÚ starmap_asyncrýZ AsyncResult)r‡r‹r�rˆr‰c@seZdZdd„Zdd„ZdS)r†cCs|Srrr/rrrr÷›szPoolProxy.__enter__cCs | ¡dSr)rýrørrrrü�szPoolProxy.__exit__N)r5r7r8r÷rürrrrr†šsc@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)r5r7r8r9rrrrr¤srÚQueueÚ JoinableQueuervrpÚRLockÚ SemaphoreÚBoundedSemaphoreÚ ConditionÚBarrierÚPoolr%r¼)r¿r )r c@sLeZdZdZgfdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dS)Ú_SharedMemoryTrackerz+Manages one or more shared memory segments.cCs||_||_dSr©Zshared_memory_context_nameÚ segment_names)r-rr˜rrrr.Ìsz_SharedMemoryTracker.__init__cCs(t d|›dtƒ›�¡|j |¡dS)z6Adds the supplied shared memory block name to tracker.zRegister segment ú in pid N)rr…rr˜rR©r-Ú segment_namerrrÚregister_segmentÐsz%_SharedMemoryTracker.register_segmentcCsBt d|›dtƒ›�¡|j |¡t |¡}| ¡| ¡dS)z‚Calls unlink() on the shared memory block with the supplied name and removes it from the list of blocks being tracked.zDestroy segment r™N) rr…rr˜r|rÚ SharedMemoryr•Úunlink)r-r›ZsegmentrrrÚdestroy_segmentÕs   z$_SharedMemoryTracker.destroy_segmentcCs"|jdd…D]}| |¡qdS)ztdƒ‚ntd |jj¡ƒ‚| |j |j |j |j ¡S)z@Better than monkeypatching for now; merge into Server ultimatelyz"Already started SharedMemoryServerz!SharedMemoryManager has shut downrÒ) rËrÂrÁrÄrÅr rÆrLrìrÓrÉrÊrÌr/rrrrÔ7s   ÿ ÿzSharedMemoryManager.get_serverc CsŽ|j|j|jd��h}tjdd|d�}zt|dd|jfƒWn0tyj}z| ¡|‚WYd}~n d}~00Wdƒn1s€0Y|S)zoReturns a new SharedMemory instance with the specified size in bytes, to be tracked by the manager.rÕNT)rZÚsizer¢) rÍrÉrÊrr�rErÚ BaseExceptionrž)r-r­r¢Zsmsršrrrr�Ds8z SharedMemoryManager.SharedMemoryc CsŒ|j|j|jd��f}t |¡}zt|dd|jjfƒWn2tyh}z|j  ¡|‚WYd}~n d}~00Wdƒn1s~0Y|S)z�Returns a new ShareableList instance populated with the values from the input sequence, to be tracked by the manager.rÕNr¢) rÍrÉrÊrÚ ShareableListrEZshmrr®rž)r-rBr¢Úslršrrrr¯Ps  8z!SharedMemoryManager.ShareableListN) r5r7r8r9r¡rìr.r rÔr�r¯rrrrrs    )NNNTF)T)UÚ__all__r‚rorérÚqueuerTrkr¥rr¹rr¬r Úcontextr r r r rrrrÚ ImportErrorZ HAS_SHMEMrRrr Z view_typesr%r(Z view_typerfrrEr>r“rMrUrWrXrÁrsrtÚ XmlListenerÚ XmlClientrjrr»rrr.r8r r9r<rCrDrIrOrZr\rcrjrnrr�rr…Z BasePoolProxyr†rrŽrvrpr�r‘r’r“r”r•r¼r–r¡rrrrrÚ sÈ             H  þ w 4 ÿ       ÿ  û   ÿ%-