⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.40
Server IP:
97.74.87.16
Server:
Linux 16.87.74.97.host.secureserver.net 5.14.0-503.38.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 18 08:52:10 EDT 2025 x86_64
Server Software:
Apache
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib64
/
python3.9
/
multiprocessing
/
__pycache__
/
View File Name :
managers.cpython-39.pyc
a �����DOgǸ����������������������@���sL��g�d��Z�ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z �ddl mZ�ddlm Z �ddlmZmZmZ�ddlmZ�dd lmZ�dd lmZ�ddlmZ�zddlmZ�W�n�ey����d ZY�n0�dZe��d��dd��Ze�eje��dd��dD��Zed�eu�r8dd��ZeD�]Ze�ee���q$G�dd��de �Z!di�fdd�Z"dd��Z#G�dd��de$�Z%d d!��Z&d"d#��Z'G�d$d%��d%e �Z(G�d&d'��d'e �Z)e j*e j+fe j,e j-fd(�Z.G�d)d*��d*e �Z/G�d+d,��d,e0�Z1G�d-d.��d.e �Z2d/d0��Z3i�fd1d2�Z4dmd3d4�Z5G�d5d6��d6e �Z6G�d7d8��d8e �Z7dnd9d:�Z8G�d;d<��d<e2�Z9G�d=d>��d>e2�Z:G�d?d@��d@e:�Z;G�dAdB��dBe2�Z<G�dCdD��dDe2�Z=G�dEdF��dFe2�Z>G�dGdH��dHe2�Z?e4dIdJ�Z@G�dKdL��dLe@�ZAe4dMdN�ZBdOdPieB_Ce4dQdR�ZDe4dSdT�ZEdUdUdUdPdPdV�eE_CG�dWdS��dSeE�ZFG�dXdY��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�rHG�dhdi��di�ZRG�djdk��dke(�ZSG�dld��de/�ZTdS�)o)�BaseManager�SyncManager� BaseProxy�Token�����N)�getpid)� format_exc����)� connection)� reduction�get_spawning_popen�ProcessError)�pool)�process)�util)�get_context)� shared_memoryFT�SharedMemoryManagerc�����������������C���s���t�j�|�j|����ffS��N)�array�typecode�tobytes)�a��r����0/usr/lib64/python3.9/multiprocessing/managers.py�reduce_array/���s����r���c�����������������C���s���g�|�]}t�ti�|�����qS�r���)�type�getattr��.0�namer���r���r���� <listcomp>3��������r ���)�items�keys�valuesc�����������������C���s���t�t�|��ffS�r���)�list��objr���r���r����rebuild_as_list5���s����r(���c�������������������@���s4���e�Zd�ZdZdZdd��Zdd��Zdd��Zd d ��ZdS�)r���z3 Type to uniquely identify a shared object ��typeid�address�idc�����������������C���s���|||��|�_�|�_|�_d�S�r���r)���)�selfr*���r+���r,���r���r���r����__init__D���s����zToken.__init__c�����������������C���s���|�j�|�j|�jfS�r���r)����r-���r���r���r����__getstate__G���s����zToken.__getstate__c�����������������C���s���|\|�_�|�_|�_d�S�r���r)����r-����stater���r���r����__setstate__J���s����zToken.__setstate__c�����������������C���s���d|�j�j|�j|�j|�jf�S�)Nz %s(typeid=%r, address=%r, id=%r))� __class__�__name__r*���r+���r,���r/���r���r���r����__repr__M���s�����zToken.__repr__N) r5���� __module__�__qualname__�__doc__� __slots__r.���r0���r3���r6���r���r���r���r���r���>���s���r���r���c�����������������C���s8���|���||||f��|����\}}|dkr*|S�t||��dS�)zL Send a message to manager using connection `c` and return response �#RETURNN)�send�recv�convert_to_error)�cr,���� methodname�args�kwds�kind�resultr���r���r����dispatchU���s ����rE���c�����������������C���sd���|�dkr|S�|�dv�rRt�|t�s4td�||�t|����|�dkrHtd|��S�t|�S�ntd�|���S�d�S�)N�#ERROR)� #TRACEBACK�#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrH���zUnserializable message: %s zUnrecognized message type {!r})� isinstance�str� TypeError�formatr����RemoteError� ValueError)rC���rD���r���r���r���r>���_���s���� �� r>���c�������������������@���s���e�Zd�Zdd��ZdS�)rM���c�����������������C���s���dt�|�jd���d�S�)NzM --------------------------------------------------------------------------- r���zK---------------------------------------------------------------------------)rJ���rA���r/���r���r���r����__str__o���s����zRemoteError.__str__N)r5���r7���r8���rO���r���r���r���r���rM���n���s���rM���c�����������������C���s2���g�}t�|��D�] }t|�|�}t|�r|�|��q|S�)z4 Return a list of names of methods of `obj` )�dirr����callable�append)r'����tempr����funcr���r���r����all_methodsv���s���� rU���c�����������������C���s���dd��t�|��D��S�)zP Return a list of names of methods of `obj` which do not start with '_' c�����������������S���s���g�|�]}|d��dkr|�qS�)r����_r���r���r���r���r���r �������r!���z"public_methods.<locals>.<listcomp>)rU���r&���r���r���r����public_methods����s����rW���c�������������������@���s����e�Zd�ZdZg�d�Zdd��Zdd��Zdd��Zd d ��Zdd��Z d d��Z dd��Zdd��Zeee 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�decrefc�����������������C���sx���t�|t�std�|t|����||�_t�|�|�_t |�\}}||dd�|�_ |�j j|�_ddi|�_i�|�_ i�|�_t���|�_d�S�)Nz&Authkey {0!r} is type {1!s}, not bytes����)r+����backlog�0�Nr���)rI����bytesrK���rL���r����registryr����AuthenticationString�authkey�listener_client�listenerr+���� id_to_obj�id_to_refcount�id_to_local_proxy_obj� threading�Lock�mutex)r-���rg���r+���ri���� serializer�Listener�Clientr���r���r���r.�������s���� �� zServer.__init__c�������������� ���C���s����t����|�_|�t���_z�t�j|�jd�}d|_|� ���z|�j� ��sL|�j�d��q4W�n�tt fyd���Y�n0�W�tjtjkr�t�d��tjt_tjt_t�d��n2tjtjkr�t�d��tjt_tjt_t�d��0�dS�)z( Run the server forever )�targetTr���zresetting stdout, stderrr���N)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{���r���r���r���� serve_forever����s*���� � zServer.serve_foreverc�����������������C���sL���z|�j����}W�n�ty$���Y�q�Y�n0�tj|�j|fd�}d|_|����q�d�S�)N�ru���rA���T)rk����accept�OSErrorro���rz����handle_requestr|���r}���)r-���r?����tr���r���r���r{�������s���� zServer.accepterc�����������������C���sN��d�}�}}zTt��||�j��t��||�j��|���}|\}}}}||�jv�sTJ�d|���t|�|�}W�n�ty|���dt��f} Y�nB0�z||g|�R�i�|��}W�n�ty����dt��f} Y�n 0�d|f} z|� | ��W�nt�t�y@�} �zZz|� dt��f��W�n�t�y���Y�n0�t �d| ��t �d|��t �d| ��W�Y�d} ~ n d} ~ 0�0�|����dS�)z) Handle a new connection Nz%r unrecognizedrG���r;���zFailure to send message: %rz ... request was %r� ... exception was %r) r ����deliver_challengeri����answer_challenger=����publicr���� Exceptionr���r<���r����info�close)r-���r?����funcnamerD����request�ignorerA���rB���rT����msg�er���r���r���r��������s4����"zServer.handle_requestc�����������������C���s���t��dt���j��|j}|j}|�j}|�j� ���sΐz:d�}}|��}|\}}} } z||�\}}}W�nP�t y��} �z8z|�j|�\}}}W�n�t y����| �Y�n0�W�Y�d} ~ n d} ~ 0�0�||vr�td|t |�|f���t||�}z|| i�| ��}W�n.�t�y�}�zd|f}W�Y�d}~nXd}~0�0�|�o,|�|d�}|�rb|��|||�\}}t||�j|�}d||ff}nd|f}W�n��t�y����|du��r�dt��f}nRz2|�j|�}||�|||g| �R�i�| ��}d|f}W�n�t�y����dt��f}Y�n0�Y�nL�t�y���t��dt���j��t�d ��Y�n�t�y2���dt��f}Y�n0�z4z||��W�n"�t�yd���|d t��f��Y�n0�W�q$�t�y��}�zHt��dt���j��t��d|��t��d |��|����t�d��W�Y�d}~q$d}~0�0�q$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;���rG���z$got EOF -- exiting thread serving %rr���rH���zexception in thread serving %rz ... message was %rr����r���)r���r����ro����current_threadr���r=���r<���rl���rw���r~����KeyErrorrn����AttributeErrorr���r���r�����getrZ���r���r+���r����fallback_mapping�EOFErrorr����r����r����r����)r-����connr=���r<���rl���r@���r'���r�����identrA���rB����exposed� gettypeid�ke�function�resr����r����r*���ZridentZrexposed�tokenZ fallback_funcrD���r���r���r����serve_client����s������� �� �����zServer.serve_clientc�����������������C���s���|S�r���r����r-���r����r����r'���r���r���r����fallback_getvalue7��s����zServer.fallback_getvaluec�����������������C���s���t�|�S�r����rJ���r����r���r���r����fallback_str:��s����zServer.fallback_strc�����������������C���s���t�|�S�r���)�reprr����r���r���r���� fallback_repr=��s����zServer.fallback_repr)rO���r6���� #GETVALUEc�����������������C���s���d�S�r���r����r-���r?���r���r���r���r_���F��s����zServer.dummyc�������������� ���C���s����|�j��v�g�}t|�j����}|����|D�]<}|dkr&|�d||�j|�t|�j|�d��dd��f���q&d�|�W��d����S�1�s�0����Y��dS�)zO Return some info --- useful to spot problems with refcounting rd���z %s: refcount=%s %sr���N�K���� ) rq���r%���rm���r#����sortrR���rJ���rl����join)r-���r?���rD���r#���r����r���r���r���r]���I��s���� ��zServer.debug_infoc�����������������C���s ���t�|�j�S�)z* Number of shared objects )�lenrm���r����r���r���r���r^���Y��s����zServer.number_of_objectsc�����������������C���sV���zDzt��d��|�d��W�n���ddl}|����Y�n0�W�|�j����n|�j����0�dS�)z' Shutdown this process z!manager received shutdown message�r;���Nr���N)r���r����r<���� traceback� print_excrw����set)r-���r?���r����r���r���r���rY���`��s���� zServer.shutdownc����������������O���s��|�j����|�j|�\}}}}|du�rD|s2t|�dkr:td��|d�} n||i�|��} |du�rbt| �}|dur�t|t�s�td�|t |����t |�t |��}dt| ��} t� d|| ��| t|�|f|�j| <�| |�jvr�d|�j| <�W�d����n1�s�0����Y��|��|| ��| t|�fS�)z> Create a new shared object and return its id Nr���z4Without callable, must have one non-keyword argumentr���z,Method_to_typeid {0!r}: type {1!s}, not dictz%xz&%r callable returned object with id %r)rq���rg���r����rN���rW���rI����dictrK���rL���r���r%���r,���r���r����r����rl���rm���r`����tuple)r-���r?���r*���rA���rB���rQ���r�����method_to_typeid� proxytyper'���r����r���r���r���rZ���m��s6����� � �� (z Server.createc�����������������C���s���t�|�j|j�d��S�)zL Return the methods of the shared object indicated by token r���)r����rl���r,���)r-���r?���r����r���r���r���r\������s����zServer.get_methodsc�����������������C���s"���|t����_|�d��|��|��dS�)z= Spawn a new thread to serve this connection r����N)ro���r����r���r<���r����)r-���r?���r���r���r���r���r[������s���� zServer.accept_connectionc�����������������C���s����|�j����z|�j|��d7��<�W�nj�ty��}�zR||�jv�rpd|�j|<�|�j|�|�j|<�|�j|�\}}}t�d|��n|�W�Y�d�}~n d�}~0�0�W�d�����n1�s�0����Y��d�S�)Nr���z&Server re-enabled tracking & INCREF %r)rq���rm���r����rn���rl���r���r����)r-���r?���r����r����r'���r����r����r���r���r���r`������s���� �z Server.increfc�����������������C���s����||�j�vr$||�jv�r$t�d|��d�S�|�j�d�|�j�|�dkrXtd�||�j|�|�j�|����|�j�|��d8��<�|�j�|�dkr�|�j�|=�W�d�����n1�s�0����Y��||�j�vr�d|�j|<�t�d|��|�j��|�j|=�W�d�����n1�s�0����Y��d�S�)NzServer DECREF skipping %rr���z+Id {0!s} ({1!r}) has refcount {2:n}, not 1+r���)Nr���Nzdisposing of obj with id %r)rm���rn���r���r����rq����AssertionErrorrL���rl���)r-���r?���r����r���r���r���ra������s*���� � ��& z Server.decrefN)r5���r7���r8���r9���r����r.���r����r{���r����r����r����r����r����r����r_���r]���r^���rY���rZ���r\���r[���r`���ra���r���r���r���r���rX�������s.��� "Q� $rX���c�������������������@���s���e�Zd�ZdgZdZdZdZdS�)�State�valuer���r�������N)r5���r7���r8���r:����INITIAL�STARTED�SHUTDOWNr���r���r���r���r�������s���r����)�pickle� xmlrpclibc�������������������@���s����e�Zd�ZdZi�ZeZd"dd�Zdd��Zdd ��Z d#dd�Z ed$d d��Zdd��Z d%dd�Zdd��Zdd��Zdd��Zdd��Zedd���Zedd���Zed&d d!��ZdS�)'r���z! Base class for managers Nr����c�����������������C���s\���|d�u�rt����j}||�_t��|�|�_t��|�_tj|�j_ ||�_ t|�\|�_|�_ |pTt��|�_d�S�r���)r���rx���ri����_addressrh����_authkeyr�����_stater����r�����_serializerrj���Z _Listener�_Clientr����_ctx)r-���r+���ri���rr����ctxr���r���r���r.������s���� zBaseManager.__init__c�����������������C���sf���|�j�jtjkrP|�j�jtjkr&td��n*|�j�jtjkr>td��ntd�|�j�j���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����rL���rX���� _registryr����r����r����r/���r���r���r���� get_server���s���� � �zBaseManager.get_serverc�����������������C���s8���t�|�j�\}}||�j|�jd�}t|dd��tj|�j_dS�)z> Connect manager object to the server process �ri���Nr_���) rj���r����r����r����rE���r����r����r����r����)r-���rs���rt���r����r���r���r����connect��s����zBaseManager.connectr���c�������������� ���C���s4��|�j�jtjkrP|�j�jtjkr&td��n*|�j�jtjkr>td��ntd�|�j�j���|durht|�sht d��t jdd�\}}|�jj 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�����:c�����������������s���s���|�]}t�|�V��qd�S�r���r����)r����ir���r���r���� <genexpr>(��r!���z$BaseManager.start.<locals>.<genexpr>�-r����rA����exitpriority)!r����r����r����r����r����r���r����rL���rQ���rK���r ����Piper�����Processr����_run_serverr����r����r����r�����_processr����� _identityr5���r���r}���r����r=���r����Finalize�_finalize_managerr����rY���)r-����initializer�initargs�reader�writerr����r���r���r���r}�����s>���� � �� ��zBaseManager.startc����������� ������C���s^���t���t�jt�j��|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����r���r����r����) �clsrg���r+���ri���rr���r����r����r�����serverr���r���r���r����:��s����zBaseManager._run_serverc����������������O���sl���|�j�jtjksJ�d��|�j|�j|�jd�}z&t|dd|f|�|�\}}W�|����n |����0�t ||�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����rE���r����r���)r-���r*���rA���rB���r����r,���r����r���r���r����_createQ��s����zBaseManager._createc�����������������C���s*���|�j�dur&|�j��|��|�j����s&d|�_�dS�)zC Join the manager process (if it has been spawned) N)r����r�����is_alive�r-����timeoutr���r���r���r����]��s���� zBaseManager.joinc�����������������C���s8���|�j�|�j|�jd�}zt|dd�W�|����S�|����0�dS�)zS Return some info about the servers shared objects and connections r����Nr]����r����r����r����rE���r�����r-���r����r���r���r����_debug_infof��s�����zBaseManager._debug_infoc�����������������C���s8���|�j�|�j|�jd�}zt|dd�W�|����S�|����0�dS�)z5 Return the number of shared objects r����Nr^���r����r����r���r���r����_number_of_objectsp��s�����zBaseManager._number_of_objectsc�����������������C���sj���|�j�jtjkr|�����|�j�jtjkrf|�j�jtjkr<td��n*|�j�jtjkrTtd��ntd�|�j�j���|�S�)NzUnable to start serverr����r����) r����r����r����r����r}���r����r���r����rL���r/���r���r���r���� __enter__z��s���� �zBaseManager.__enter__c�����������������C���s���|������d�S�r���)rY����r-����exc_type�exc_val�exc_tbr���r���r����__exit__���s����zBaseManager.__exit__c�����������������C���s����|�����r�t�d��z4|||d�}zt|dd��W�|����n |����0�W�n�tyX���Y�n0�|�jdd��|�����r�t�d��t|�d�r�t�d ��|�����|�jdd��|�����r�t�d ��t j |_ztj |=�W�n�ty����Y�n0�dS�)zQ Shutdown the manager process; will be registered as a finalizer z#sending shutdown message to managerr����NrY���g�������?)r����zmanager still alive� terminatez'trying to `terminate()` manager processz#manager still alive after terminate)r����r���r����rE���r����r����r�����hasattrr����r����r����r����r����_address_to_localr����)r���r+���ri���r2���r����r����r���r���r���r�������s.���� zBaseManager._finalize_managerc�����������������C���s���|�j�S�r���)r����r/���r���r���r���r+������s����zBaseManager.addressTc����������� ���������s����d|�j�vr|�j���|�_��du�r"t��|p0t��dd�}|p@t��dd�}|r�t|����D�]8\}}t|�tu�srJ�d|���t|�tu�sRJ�d|���qR|||��f|�j�<�|r��fdd�} �| _ t |��| ��dS�)z9 Register a typeid with the manager type r����N� _exposed_�_method_to_typeid_z%r is not a stringc�������������������sf���t��d���|�j�g|�R�i�|��\}}��||�j|�|�j|d�}|�j|j|�jd�}t|d�d|jf��|S�)Nz)requesting creation of a shared %r object��managerri���r����r����ra���) r���r����r����r����r����r����r+���rE���r,���)r-���rA���rB���r�����exp�proxyr�����r����r*���r���r���rS������s�����z"BaseManager.register.<locals>.temp)�__dict__r�����copy� AutoProxyr���r%���r"���r���rJ���r5����setattr) r����r*���rQ���r����r����r����� create_method�keyr����rS���r���r��r����register���s$���� �� zBaseManager.register)NNr����N)Nr���)Nr���)N)NNNNT)r5���r7���r8���r9���r����rX���r����r.���r����r����r}����classmethodr����r����r����r����r����r����r�����staticmethodr�����propertyr+���r ��r���r���r���r���r������s4������ +�� ���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�ProcessLocalSetc�����������������C���s���t��|�dd����d�S�)Nc�����������������S���s���|�����S�r���)�clearr&���r���r���r����<lambda>���r!���z*ProcessLocalSet.__init__.<locals>.<lambda>)r����register_after_forkr/���r���r���r���r.������s����zProcessLocalSet.__init__c�����������������C���s���t�|��dfS�re���)r���r/���r���r���r���� __reduce__���s����zProcessLocalSet.__reduce__N)r5���r7���r8���r.���r��r���r���r���r���r�����s���r��c�������������������@���s����e�Zd�ZdZi�Ze���Zddd�Zdd��Z d i�fd d�Z dd ��Zdd��Ze dd���Zdd��Zdd��Zdd��Zdd��Zdd��ZdS�)r���z. A base for proxies of shared objects NTFc����������� ������C���s����t�j�B�t�j�|jd��}|d�u�r:t���t��f}|t�j|j<�W�d�����n1�sN0����Y��|d�|�_|d�|�_ ||�_ |�j j|�_||�_ ||�_t|�d�|�_||�_|d�ur�t�|�|�_n"|�j d�ur�|�j j|�_nt���j|�_|r�|�����t�|�t�j��d�S�)Nr���r���)r����_mutexr����r����r+���r����ForkAwareLocalr���_tls�_idset�_tokenr,����_id�_managerr����rj���r�����_owned_by_managerr���rh���r����rx���ri����_increfr���_after_fork) r-���r����rr���r��ri���r����r`���� manager_ownedZ tls_idsetr���r���r���r.������s*����* zBaseProxy.__init__c�����������������C���sd���t��d��t���j}t���jdkr4|dt���j�7�}|�j|�jj |�j d�}t|d�d|f��||�j_ d�S�)Nzmaking connection to manager� MainThread�|r����r[���)r���r����r���rx���r���ro���r����r����r��r+���r����rE���r��r ���)r-���r���r����r���r���r����_connect��s���� zBaseProxy._connectr���c�����������������C���s����z|�j�j}W�n4�ty@���t�dt���j��|�����|�j�j}Y�n0�|� |�j |||f��|���\}}|dkrn|S�|dkr�|\}}|�jj |j�d�} |�jj|_| ||�j|�j|�j|d�} |�j|j|�jd�}t|dd|jf��| S�t||��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�������r��r����Nra���)r��r ���r����r���r����ro���r����r���r#��r<���r��r=���r��r����r*���r��r+���r����r����r����rE���r,���r>���)r-���r@���rA���rB���r����rC���rD���r����r����r����r��r���r���r����_callmethod��s0����� �zBaseProxy._callmethodc�����������������C���s ���|���d�S�)z9 Get a copy of the value of the referent r�����r%��r/���r���r���r���� _getvalue;��s����zBaseProxy._getvaluec�������������� ���C���s����|�j�rt�d|�jj��d�S�|�j|�jj|�jd�}t|d�d|�j f��t�d|�jj��|�j �|�j ��|�joj|�jj }tj|�tj|�j|�j||�j|�j |�jfdd�|�_d�S�)Nz%owned_by_manager skipped INCREF of %rr����r`���z INCREF %r� ���r����)r��r���r����r��r,���r����r+���r����rE���r��r���addr��r����r����r����_decrefr���_close)r-���r����r2���r���r���r���r��A��s���� ��zBaseProxy._increfc�������������� ���C���s����|��|�j��|d�u�s |jtjkr�z2t�d|�j��||�j|d�}t|d�d|�jf��W�q��t y��}�zt�d|��W�Y�d�}~q�d�}~0�0�nt�d|�j��|s�t |d�r�t�dt���j ��|j����|`d�S�)Nz DECREF %rr����ra���z... decref failed %sz%DECREF %r -- manager already shutdownr ���z-thread %r has no more proxies so closing conn)�discardr,���r����r����r����r���r����r+���rE���r����r����ro���r����r���r ���r����)r����ri���r2���ZtlsZidsetr����r����r����r���r���r���r*��U��s����$� zBaseProxy._decrefc�������������� ���C���sJ���d�|�_�z|�����W�n2�tyD�}�zt�d|���W�Y�d�}~n d�}~0�0�d�S�)Nzincref failed: %s)r��r��r����r���r����)r-���r����r���r���r���r��n��s ����zBaseProxy._after_forkc�����������������C���s^���i�}t���d�ur|�j|d<�t|�dd�rB|�j|d<�tt|�j|�j|ffS�tt|��|�j|�j|ffS�d�S�)Nri����_isautoFr����) r���r����r���r����RebuildProxyr ��r��r����r����r-���rB���r���r���r���r��v��s���� ��zBaseProxy.__reduce__c�����������������C���s���|�����S�r���)r'��)r-����memor���r���r����__deepcopy__���s����zBaseProxy.__deepcopy__c�����������������C���s���dt�|��j|�jjt|��f�S�)Nz<%s object, typeid %r at %#x>)r���r5���r��r*���r,���r/���r���r���r���r6������s�����zBaseProxy.__repr__c�����������������C���s8���z|���d�W�S��ty2���t|��dd��d��Y�S�0�dS�)zV Return representation of the referent (or a fall-back if that fails) r6���Nr$��z; '__str__()' failed>)r%��r����r����r/���r���r���r���rO������s����zBaseProxy.__str__)NNNTF)r5���r7���r8���r9���r����r����ForkAwareThreadLockr��r.���r#��r%��r'��r��r��r*��r��r��r1��r6���rO���r���r���r���r���r������s"������ ) r���c�����������������C���s����t�t���dd�}|rT|j|jkrTt�d|��d|d<�|j|jvrT|j|j�|j|j<�|� dd�opt�t���dd��}|�||fd|i|��S�) z5 Function used for unpickling proxy objects. ry���Nz*Rebuild a proxy owned by manager, token=%rTr ��r`���Z_inheritingF) r���r���rx���r+���r���r����r,���rn���rl����pop)rT���r����rr���rB���r����r`���r���r���r���r.�����s���� � �r.��c�����������������C���sn���t�|�}z||�|f�W�S��ty(���Y�n0�i�}|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�����execr���r���r���)r���r�����_cacheZdic�meth� ProxyTyper���r���r���� MakeProxyType���s ������r8��c�����������������C���s����t�|�d�}|du�rJ||�j|d�}zt|dd|�f�}W�|����n |����0�|du�r`|dur`|j}|du�rrt���j}td|�j �|�} | |�|||||d�} d| _ | S�)z* Return an auto-proxy for `token` r���Nr����r\���z AutoProxy[%s])r��ri���r`���r ��T)rj���r+���rE���r����r����r���rx���ri���r8��r*���r-��)r����rr���r��ri���r����r`���r ��r����r����r7��r��r���r���r���r �����s ���� �r ��c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� Namespacec����������������K���s���|�j��|��d�S�r���)r���updater/��r���r���r���r.������s����zNamespace.__init__c�����������������C���sZ���t�|�j����}g�}|D�]$\}}|�d�s|�d||f���q|����d|�jjd�|�f�S�)NrV���z%s=%rz%s(%s)z, ) r%���r��r"���� startswithrR���r����r4���r5���r����)r-���r"���rS���r���r����r���r���r���r6������s���� zNamespace.__repr__N)r5���r7���r8���r.���r6���r���r���r���r���r9�����s���r9��c�������������������@���s8���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zeee�Zd S�)�ValueTc�����������������C���s���||�_�||�_d�S�r���)� _typecode�_value)r-���r���r�����lockr���r���r���r.������s����zValue.__init__c�����������������C���s���|�j�S�r����r>��r/���r���r���r���r�������s����z Value.getc�����������������C���s ���||�_�d�S�r���r@���r-���r����r���r���r���r�������s����z Value.setc�����������������C���s���dt�|��j|�j|�jf�S�)Nz %s(%r, %r))r���r5���r=��r>��r/���r���r���r���r6������s����zValue.__repr__N)T) r5���r7���r8���r.���r����r����r6���r��r����r���r���r���r���r<�����s ��� r<��c�����������������C���s���t���|�|�S�r���)r���)r����sequencer?��r���r���r����Array���s����rC��c�������������������@���s8���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZdS�) � IteratorProxy)�__next__r<����throwr����c�����������������C���s���|�S�r���r���r/���r���r���r����__iter__���s����zIteratorProxy.__iter__c�����������������G���s���|���d|�S�)NrE��r&���r-���rA���r���r���r���rE����s����zIteratorProxy.__next__c�����������������G���s���|���d|�S�)Nr<���r&��rH��r���r���r���r<�����s����zIteratorProxy.sendc�����������������G���s���|���d|�S�)NrF��r&��rH��r���r���r���rF����s����zIteratorProxy.throwc�����������������G���s���|���d|�S�)Nr����r&��rH��r���r���r���r������s����zIteratorProxy.closeN) r5���r7���r8���r���rG��rE��r<���rF��r����r���r���r���r���rD�����s���rD��c�������������������@���s2���e�Zd�ZdZddd�Zdd��Zdd ��Zd d��ZdS�) � AcquirerProxy)�acquire�releaseTNc�����������������C���s"���|d�u�r|fn||f}|���d|�S��NrJ��r&��)r-����blockingr����rA���r���r���r���rJ����s����zAcquirerProxy.acquirec�����������������C���s ���|���d�S��NrK��r&��r/���r���r���r���rK����s����zAcquirerProxy.releasec�����������������C���s ���|���d�S�rL��r&��r/���r���r���r���r������s����zAcquirerProxy.__enter__c�����������������C���s ���|���d�S�rN��r&��r����r���r���r���r������s����zAcquirerProxy.__exit__)TN)r5���r7���r8���r���rJ��rK��r����r����r���r���r���r���rI����s ��� rI��c�������������������@���s6���e�Zd�ZdZddd�Zd dd�Zdd ��Zdd d�ZdS�)�ConditionProxy)rJ��rK��r����notify� notify_allNc�����������������C���s���|���d|f�S��Nr���r&��r����r���r���r���r�����s����zConditionProxy.waitr���c�����������������C���s���|���d|f�S�)NrP��r&��)r-����nr���r���r���rP����s����zConditionProxy.notifyc�����������������C���s ���|���d�S�)NrQ��r&��r/���r���r���r���rQ����s����zConditionProxy.notify_allc�����������������C���sd���|��}|r|S�|d�ur$t����|�}nd�}d�}|s`|d�urN|t�����}|dkrNq`|��|��|��}q,|S�)Nr���)�time� monotonicr���)r-���� predicater����rD����endtime�waittimer���r���r����wait_for!��s���� zConditionProxy.wait_for)N)r���)N)r5���r7���r8���r���r���rP��rQ��rY��r���r���r���r���rO����s ��� rO��c�������������������@���s2���e�Zd�ZdZdd��Zdd��Zdd��Zdd d �ZdS�)� EventProxy)r~���r����r��r���c�����������������C���s ���|���d�S�)Nr~���r&��r/���r���r���r���r~���6��s����zEventProxy.is_setc�����������������C���s ���|���d�S��Nr����r&��r/���r���r���r���r����8��s����zEventProxy.setc�����������������C���s ���|���d�S�)Nr��r&��r/���r���r���r���r��:��s����zEventProxy.clearNc�����������������C���s���|���d|f�S�rR��r&��r����r���r���r���r���<��s����zEventProxy.wait)N)r5���r7���r8���r���r~���r����r��r���r���r���r���r���rZ��4��s ���rZ��c�������������������@���sN���e�Zd�ZdZddd�Zdd��Zdd��Zed d ���Zedd���Z ed d���Z dS�)�BarrierProxy)�__getattribute__r����abort�resetNc�����������������C���s���|���d|f�S�rR��r&��r����r���r���r���r���B��s����zBarrierProxy.waitc�����������������C���s ���|���d�S�)Nr^��r&��r/���r���r���r���r^��D��s����zBarrierProxy.abortc�����������������C���s ���|���d�S�)Nr_��r&��r/���r���r���r���r_��F��s����zBarrierProxy.resetc�����������������C���s���|���dd�S�)Nr]��)�partiesr&��r/���r���r���r���r`��H��s����zBarrierProxy.partiesc�����������������C���s���|���dd�S�)Nr]��)� n_waitingr&��r/���r���r���r���ra��K��s����zBarrierProxy.n_waitingc�����������������C���s���|���dd�S�)Nr]��)�brokenr&��r/���r���r���r���rb��N��s����zBarrierProxy.broken)N)r5���r7���r8���r���r���r^��r_��r��r`��ra��rb��r���r���r���r���r\��@��s��� r\��c�������������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �NamespaceProxy)r]���__setattr__�__delattr__c�����������������C���s0���|d�dkrt��|�|�S�t��|�d�}|d|f�S�)Nr���rV���r%��r]��)�objectr]���r-���r��� callmethodr���r���r����__getattr__U��s����zNamespaceProxy.__getattr__c�����������������C���s4���|d�dkrt��|�||�S�t��|�d�}|d||f�S�)Nr���rV���r%��rd��)rf��rd��r]��)r-���r��r����rh��r���r���r���rd��Z��s����zNamespaceProxy.__setattr__c�����������������C���s0���|d�dkrt��|�|�S�t��|�d�}|d|f�S�)Nr���rV���r%��re��)rf��re��r]��rg��r���r���r���re��_��s����zNamespaceProxy.__delattr__N)r5���r7���r8���r���ri��rd��re��r���r���r���r���rc��S��s���rc��c�������������������@���s4���e�Zd�ZdZdd��Zdd��Zeee�Zee j �ZdS�)� ValueProxy)r����r����c�����������������C���s ���|���d�S�)Nr����r&��r/���r���r���r���r����h��s����zValueProxy.getc�����������������C���s���|���d|f�S�r[��r&��rA��r���r���r���r����j��s����zValueProxy.setN)r5���r7���r8���r���r����r����r��r����r���types�GenericAlias�__class_getitem__r���r���r���r���rj��f��s ��� rj��� BaseListProxy)�__add__�__contains__�__delitem__�__getitem__�__len__�__mul__�__reversed__�__rmul__�__setitem__rR����count�extend�index�insertr3���remove�reverser�����__imul__c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� ListProxyc�����������������C���s���|���d|f��|�S�)Nry��r&��rA��r���r���r����__iadd__x��s����zListProxy.__iadd__c�����������������C���s���|���d|f��|�S�)Nr~��r&��rA��r���r���r���r~��{��s����zListProxy.__imul__N)r5���r7���r8���r���r~��r���r���r���r���r��w��s���r��� DictProxy)rp��rq��rr��rG��rs��rw��r��r��r����r"���r#���r3���popitem� setdefaultr:��r$���rG���Iterator� ArrayProxy)rs��rr��rw��� PoolProxy)Zapply�apply_asyncr�����imap�imap_unorderedr�����map� map_async�starmap� starmap_asyncr����ZAsyncResult)r���r���r���r���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c�����������������C���s���|�S�r���r���r/���r���r���r���r�������s����zPoolProxy.__enter__c�����������������C���s���|������d�S�r���)r����r����r���r���r���r�������s����zPoolProxy.__exit__N)r5���r7���r8���r����r����r���r���r���r���r������s���c�������������������@���s���e�Zd�ZdZdS�)r���a(�� 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)r5���r7���r8���r9���r���r���r���r���r������s���r����Queue� JoinableQueuerv���rp����RLock� Semaphore�BoundedSemaphore� Condition�Barrier�Poolr%���r����)r����r��)r��c�������������������@���sL���e�Zd�ZdZg�fdd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Z dd��Z dS�)�_SharedMemoryTrackerz+Manages one or more shared memory segments.c�����������������C���s���||�_�||�_d�S�r����Zshared_memory_context_name� segment_names)r-���r���r���r���r���r���r.������s����z_SharedMemoryTracker.__init__c�����������������C���s(���t��d|�dt�������|�j�|��dS�)z6Adds the supplied shared memory block name to tracker.zRegister segment � in pid N)r���r����r���r���rR����r-����segment_namer���r���r����register_segment���s����z%_SharedMemoryTracker.register_segmentc�����������������C���sB���t��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) r���r����r���r���r|��r����SharedMemoryr�����unlink)r-���r���Zsegmentr���r���r����destroy_segment���s ���� z$_SharedMemoryTracker.destroy_segmentc�����������������C���s"���|�j�dd��D�]}|��|��qdS�)z<Calls destroy_segment() on all tracked shared memory blocks.N)r���r���r���r���r���r���r������s����z_SharedMemoryTracker.unlinkc�����������������C���s(���t��d|�jj��dt�������|�����d�S�)NzCall z.__del__ in )r���r����r4���r5���r���r���r/���r���r���r����__del__���s����z_SharedMemoryTracker.__del__c�����������������C���s���|�j�|�jfS�r���r���r/���r���r���r���r0������s����z!_SharedMemoryTracker.__getstate__c�����������������C���s���|�j�|���d�S�r���)r.���r1���r���r���r���r3������s����z!_SharedMemoryTracker.__setstate__N)r5���r7���r8���r9���r.���r���r���r���r���r0���r3���r���r���r���r���r������s��� r���c�������������������@���sJ���e�Zd�Zejg�d��Zdd��Zdd��Zdd��Zdd ��Zd d��Z dd ��Z dS�)�SharedMemoryServer)� track_segment�release_segment� list_segmentsc�����������������O���s`���t�j|�g|�R�i�|���|�j}t|t�r2t�|�}td|��dt������|�_ t �dt�������d�S�)NZshm_rV���z"SharedMemoryServer started by pid )rX���r.���r+���rI���rf����os�fsdecoder���r����shared_memory_contextr���r����)r-���rA����kwargsr+���r���r���r���r.������s���� �zSharedMemoryServer.__init__c����������������O���s:���t�|�j|�d�d�r|�j|d<�tj|�||g|�R�i�|��S�)z�Create a new distributed-shared object (not backed by a shared memory block) and return its id to be used in a Proxy Object.r$��Z_shared_memory_proxyr���)r����rg���r���rX���rZ���)r-���r?���r*���rA���r���r���r���r���rZ������s���� zSharedMemoryServer.createc�����������������C���s���|�j�����t�|�|�S�)zACall unlink() on all tracked shared memory, terminate the Server.)r���r���rX���rY���r����r���r���r���rY�����s���� zSharedMemoryServer.shutdownc�����������������C���s���|�j��|��dS�)z?Adds the supplied shared memory block name to Server's tracker.N)r���r����r-���r?���r���r���r���r���r�����s����z SharedMemoryServer.track_segmentc�����������������C���s���|�j��|��dS�)z�Calls unlink() on the shared memory block with the supplied name and removes it from the tracker instance inside the Server.N)r���r���r���r���r���r���r�����s����z"SharedMemoryServer.release_segmentc�����������������C���s���|�j�jS�)zbReturns a list of names of shared memory blocks that the Server is currently tracking.)r���r���r����r���r���r���r�����s����z SharedMemoryServer.list_segmentsN)r5���r7���r8���rX���r����r.���rZ���rY���r���r���r���r���r���r���r���r������s���� r���c�������������������@���s<���e�Zd�ZdZeZdd��Zdd��Zdd��Zdd ��Z d d��Z dS�) r���a���Like SyncManager but uses SharedMemoryServer instead of Server. It provides methods for creating and returning SharedMemory instances and for creating a list-like object (ShareableList) backed by shared memory. It also provides methods that create and return Proxy Objects that support synchronization across processes (i.e. multi-process-safe locks and semaphores). c�����������������O���sT���t�jdkrddlm}�|����tj|�g|�R�i�|���t�|�j j ��dt�������d�S�)N�posixr���)�resource_trackerz created by pid )r���r�����r���Zensure_runningr���r.���r���r����r4���r5���r���)r-���rA���r���r���r���r���r���r.���'��s ���� zSharedMemoryManager.__init__c�����������������C���s���t��|�jj��dt�������d�S�)Nz.__del__ by pid )r���r����r4���r5���r���r/���r���r���r���r���3��s����zSharedMemoryManager.__del__c�����������������C���sh���|�j�jtjkrP|�j�jtjkr&td��n*|�j�jtjkr>td��ntd�|�j�j���|��|�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����rL���r����r����r����r����r����r/���r���r���r���r����7��s���� ��zSharedMemoryManager.get_serverc�����������������C���s����|�j�|�j|�jd��h}tjdd|d�}zt|dd|jf��W�n0�tyj�}�z|����|�W�Y�d}~n d}~0�0�W�d����n1�s�0����Y��|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����r���r���rE���r���� BaseExceptionr���)r-���r���r����Zsmsr����r���r���r���r���D��s����8z SharedMemoryManager.SharedMemoryc�����������������C���s����|�j�|�j|�jd��f}t�|�}zt|dd|jjf��W�n2�tyh�}�z|j� ���|�W�Y�d}~n d}~0�0�W�d����n1�s~0����Y��|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���� ShareableListrE���Zshmr���r���r���)r-���rB��r�����slr����r���r���r���r���P��s���� 8z!SharedMemoryManager.ShareableListN)r5���r7���r8���r9���r���r����r.���r���r����r���r���r���r���r���r���r�����s��� )NNNTF)T)U�__all__r����ro���r����r����queuerT��rk��r���r���r����r���r���r ����contextr ���r���r���r ���r���r���r���r����ImportErrorZ HAS_SHMEMrR���r���r ��Z view_typesr%���r(���Z view_typerf��r���rE���r>���r����rM���rU���rW���rX���r����rs���rt����XmlListener� XmlClientrj���r���r����r��r���r.��r8��r ��r9��r<��rC��rD��rI��rO��rZ��r\��rc��rj��rn��r��r���r��r���Z BasePoolProxyr���r���r���rv���rp���r���r���r���r���r���r���r����r���r���r���r���r���r���r����<module>���s���� ��H � �w �4��� � � �%-