����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
python312
/
lib64
/
python3.12
/
multiprocessing
/
__pycache__
/
Filename :
managers.cpython-312.pyc
back
Copy
� ����5[Yh���������������� ������������g�d��Z�ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z �ddl mZ�ddlm Z �ddlmZmZmZ�ddlmZ�dd lmZ�dd lmZ�ddlmZ� �ddlmZ�d Ze�j1������������������d��������d��Z�ej6������������������ej������������������e��������dD���cg�c]��}��e��ei�|��������������������������c}�Zd��ZeD�]��Z �ej6������������������e e����������[ [�G�d��de!�������Z"di�fd�Z#d��Z$�G�d��de%�������Z&d��Z'd��Z(�G�d��de!�������Z)�G�d��de!�������Z*e jV������������������e jX������������������fe jZ������������������e j\������������������fd �Z/�G�d!��d"e!�������Z0�G�d#��d$e1�������Z2�G�d%��d&e!�������Z3d'��Z4i�fd(�Z5 � �dbd)�Z6�G�d*��d+e!�������Z7�G�d,��d-e!�������Z8dcd.�Z9�G�d/��d0e3�������Z:�G�d1��d2e3�������Z;�G�d3��d4e;�������Z<�G�d5��d6e3�������Z=�G�d7��d8e3�������Z>�G�d9��d:e3�������Z?�G�d;��d<e3�������Z@�e5d=d>�������ZA�G�d?��d@eA�������ZB�e5dAdB�������ZCdCdDieC_D���������e5dEdF�������ZE�e5dGdH�������ZFdIdIdIdDdDdJ�eF_D���������G�dK��dGeF�������ZG�G�dL��dMe0�������ZHeHj7������������������dNej���������������������������eHj7������������������dOej���������������������������eHj7������������������dPej�������������������e=��������eHj7������������������dQej�������������������e;��������eHj7������������������dRej�������������������e;��������eHj7������������������dSej�������������������e;��������eHj7������������������dTej�������������������e;��������eHj7������������������dUej�������������������e<��������eHj7������������������dVej�������������������e>��������eHj7������������������dWej�������������������eG��������eHj7������������������dXeReB��������eHj7������������������dYeSeC��������eHj7������������������d-e8e@��������eHj7������������������dZe9eE��������eHj7������������������d+e7e?��������eHj7������������������dDe:d�[��������eHj7������������������dId�\��������er!�G�d]��d^�������ZT�G�d_��d`e)�������ZU�G�da��de0�������ZVyy#�e$�r�dZY����w�xY�wc�c}�w�)d)�BaseManager�SyncManager� BaseProxy�Token�����N)�getpid)� format_exc����)� connection)� reduction�get_spawning_popen�ProcessError)�pool)�process)�util)�get_context)� shared_memoryT�SharedMemoryManagerFc������������������Z�����t���������j�������������������|�j������������������|�j��������������������������ffS��N)�array�typecode�tobytes)�as��� �?/opt/alt/python312/lib64/python3.12/multiprocessing/managers.py�reduce_arrayr���/���s �������;�;����Q�Y�Y�[�1�1�1�����)�items�keys�valuesc������������������&�����t���������t��������|��������ffS�r���)�list��objs��� r����rebuild_as_listr$���4���s�������$�s�)���r���c��������������������,�����e�Zd�ZdZdZd��Zd��Zd��Zd��Zy)r���z3 Type to uniquely identify a shared object ��typeid�address�idc������������������0�����|||c|�_���������|�_��������|�_��������y�r���r&���)�selfr'���r(���r)���s��� r����__init__zToken.__init__D���s������06���,���d�l�D�Gr���c������������������H�����|�j�������������������|�j������������������|�j������������������fS�r���r&����r+���s��� r����__getstate__zToken.__getstate__G���s���������T�\�\�4�7�7�3�3r���c������������������.�����|\��|�_���������|�_��������|�_��������y�r���r&����r+����states��� r����__setstate__zToken.__setstate__J���s������/4�,���d�l�D�Gr���c�����������������������|�j�������������������j�������������������d|�j�������������������d|�j�������������������d|�j�������������������d�S�)Nz(typeid=z , address=z, id=�))� __class__�__name__r'���r(���r)���r.���s��� r����__repr__zToken.__repr__M���s-���������'�'����d�l�l�D�G�G�M�� Mr���N) r7���� __module__�__qualname__�__doc__� __slots__r,���r/���r3���r8�����r���r���r���r���>���s$��������,�I�E�4�5�Mr���r���r=���c������������������x�����|�j������������������||||f��������|�j��������������������������\��}}|dk(��r|S�t��������||��������)zL Send a message to manager using connection `c` and return response �#RETURN)�send�recv�convert_to_error)�cr)���� methodname�args�kwds�kind�results��� r����dispatchrI���U���sB��������F�F�B� �D�$�'�(��6�6�8�L�D�&��y��� � �4�� (�(r���c����������� �������������|�dk(��r|S�|�dv�rSt��������|t���������������s%t��������dj������������������||�t ��������|����������������������|�dk(��rt��������d|z���������S�t��������|�������S�t ��������dj������������������|���������������S�)N�#ERROR)� #TRACEBACK�#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrM���zUnserializable message: %s zUnrecognized message type {!r})� isinstance�str� TypeError�format�type�RemoteError� ValueError)rG���rH���s��� r���rB���rB���_���s��������x��� � �2� 2��&�#�&��@�G�G��D�$�v�,�0�1�� 1���$�$��=��F�G�G��v�&�&��:�A�A�$�G�H�Hr���c�������������������������e�Zd�Zd��Zy)rS���c������������������>�����dt��������|�j������������������d����������z���dz���S�)NzM --------------------------------------------------------------------------- r���zK---------------------------------------------------------------------------)rO���rE���r.���s��� r����__str__zRemoteError.__str__o���s������$�s�4�9�9�Q�<�'8�8�6�A�Br���N)r7���r9���r:���rW���r=���r���r���rS���rS���n���s������Cr���rS���c������������������|�����g�}t��������|��������D�]+��}t��������|�|�������}t��������|�������s�|j������������������|���������-�|S�)z4 Return a list of names of methods of `obj` )�dir�getattr�callable�append)r#����temp�name�funcs��� r����all_methodsr`���v���s=��������D��C����s�D�!���D�>��K�K�������Kr���c������������������P�����t��������|��������D��cg�c] ��}|d���dk7��s�|���c}S�c�c}w�)zP Return a list of names of methods of `obj` which do not start with '_' r����_)r`���)r#���r^���s��� r����public_methodsrc�������s-�������)��-�@�-�T��a��C��D�-�@�@��@s���� #�#c�������������������������e�Zd�ZdZg�d�Zd��Zd��Zd��Zd��Zd��Z d��Z d ��Zd ��Zd��Z ee ed�Zd ��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zy)�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������������������z����t��������|t���������������s$t��������dj������������������|t ��������|����������������������||�_��������t ��������j������������������|�������|�_��������t��������|���\��}}�||d��������|�_ ��������|�j������������������j������������������|�_��������ddi|�_��������i�|�_ ��������i�|�_��������t��������j ��������������������������|�_��������y�)Nz&Authkey {0!r} is type {1!s}, not bytes����)r(����backlog�0�Nr=���)rN����bytesrP���rQ���rR����registryr����AuthenticationString�authkey�listener_client�listenerr(���� id_to_obj�id_to_refcount�id_to_local_proxy_obj� threading�Lock�mutex)r+���ru���r(���rw���� serializer�Listener�Clients��� r���r,���zServer.__init__����s��������'�5�)��8�?�?��T�'�]�,�-�� -��!�� ��3�3�G�<���*�:�6���&��!��#�>�� ��}�}�,�,����z�*��� ���%'��"��^�^�%�� r���c����������������������t��������j��������������������������|�_��������|�t��������j��������������������������_�������� �t��������j������������������|�j��������������������������}d|_��������|j��������������������������� �|�j������������������j��������������������������s6|�j������������������j������������������d��������|�j������������������j��������������������������s�6t��������j������������������t��������j ������������������k7��rGt#��������j$������������������d��������t��������j ������������������t��������_��������t��������j&������������������t��������_��������t��������j*������������������d��������y#�t��������t��������f$�r�Y���w�xY�w#�t��������j������������������t��������j ������������������k7��rGt#��������j$������������������d��������t��������j ������������������t��������_��������t��������j&������������������t��������_��������t��������j*������������������d��������w�xY�w)z( Run the server forever )�targetTr ���zresetting stdout, stderrr���N)r}����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����s��� r���� serve_foreverzServer.serve_forever����s ������$�/�/�+���48����!�1� � �'�'�t�}�}�=�H�"�H�O��N�N�� ��/�/�0�0�2��O�O�(�(��+���/�/�0�0�2� ��z�z�S�^�^�+�� � �5�6� �^�^�� � �^�^�� ��H�H�Q�K���&�z�2�� �� ����z�z�S�^�^�+�� � �5�6� �^�^�� � �^�^�� ��H�H�Q�K�s+����7E��,AD:��:E� E��E�E��A?Gc������������������������ � �|�j�������������������j��������������������������}t��������j������������������|�j ������������������|f��������}d|_��������|j����������������������������U#�t��������$�r�Y��aw�xY�w)NT�r����rE���)ry����accept�OSErrorr}���r�����handle_requestr����r����)r+���rC����ts��� r���r����zServer.accepter����sa������� ��M�M�(�(�*���� � ��(;�(;�1�$�G�A��A�H� �G�G�I������� �� �s����A�� A#�"A#c����������������������d�} �t��������j������������������||�j��������������������������t��������j������������������||�j��������������������������|j ��������������������������}|\��}}}}||�j ������������������v�s J�d|z�����������t ��������|�|�������} ��||g|��i�|��}d|f} �|j������������������| ��������y�#�t��������$�r�dt����������������f} Y��*w�xY�w#�t��������$�r�dt����������������f} Y��Ew�xY�w#�t��������$�rx} �|j������������������dt����������������f��������n#�t��������$�r�Y�nw�xY�wt��������j������������������d| ��������t��������j������������������d|��������t��������j������������������d| ��������Y�d�} ~ y�d�} ~ ww�xY�w)Nz%r unrecognizedr?���rL���zFailure to send message: %rz ... request was %r� ... exception was %r)r ����deliver_challengerw����answer_challengerA����publicrZ���� Exceptionr���r@���r����info)r+���rC����request�ignore�funcnamerE���rF���r_���rH����msg�es��� r����_handle_requestzServer._handle_request����sO������� *��(�(��D�L�L�9��'�'��4�<�<�8��f�f�h�G�+2�(�F�H�d�D��t�{�{�*�H�,=��,H�H�*��4��*�D� *��a�/�$�/�$�/���!�&�)�� 2� �F�F�3�K�� ��� 3�#�Z�\�2�� 3����� /����.�C� /����� 2� �����j�l�3�4���� �� ���I�I�3�S�9��I�I�+�W�5��I�I�-�q�1�1�� 2�s[����A;B>���B#��C��#B;�:B;�>C�C� E�#C?�>E�? D�E� D�AE�Ec����������������������� �|�j������������������|��������|j���������������������������y#�t��������$�r�Y��w�xY�w#�|j���������������������������w�xY�w)z) Handle a new connection N)r����r�����close�r+����conns��� r���r����zServer.handle_request����s@������ �� � ��&� � �J�J�L�� ��� �� ��� �J�J�L�s����$�� 0�3��0�3��Ac������������������$����t��������j������������������dt��������j��������������������������j��������������������������|j ������������������}|j������������������}|�j������������������}|�j������������������j��������������������������s� �dx}}�|��������}|\��}}} } �||���\��}}}||vrt��������d|�dt��������|��������d|����������t��������||�������} ��|| i�| ��}|xr�|j������������������|d�������}|r4|�j!������������������|||�������\��}}t#��������||�j$������������������|�������}d||ff}nd|f} � � ��|��������|�j������������������j��������������������������s��yy#�t��������$�r.} �|�j������������������|���\��}}}n#�t��������$�r�| �w�xY�wY�d} ~ ��d} ~ ww�xY�w#�t&��������$�r}d|f}Y�d}~�sd}~ww�xY�w#�t��������$�rQ�� d t)����������������f}n? �|�j*������������������|���}�||�|g ��i� ��}d|f}n#�t&��������$�r�d t)����������������f}Y�nw�xY�wY���t,��������$�rK�t��������j������������������d t��������j��������������������������j��������������������������t/��������j0������������������d��������Y���&t&��������$�r�d t)����������������f}Y���=w�xY�w#�t&��������$�r��|dt)����������������f��������Y���Uw�xY�w#�t&��������$�r�}t��������j2������������������d t��������j��������������������������j��������������������������t��������j2������������������d��������t��������j2������������������d|��������|j5���������������������������t/��������j0������������������d��������Y�d}~���d}~ww�xY�w)zQ Handle requests from the proxies in a particular process/thread z$starting server thread to service %rNzmethod z of z object is not in exposed=�#PROXYr?���rK���rL���z$got EOF -- exiting thread serving %rr���rM���zexception in thread serving %rz ... message was %rr����r ���)r���r����r}����current_threadr^���rA���r@���rz���r����r�����KeyErrorr|����AttributeErrorrR���rZ����getrg���r���r(���r����r����fallback_mapping�EOFErrorr����r����r����r����)r+���r����rA���r@���rz���rD���r#���r�����identrE���rF����exposed� gettypeid�ke�function�resr'����rident�rexposed�tokenr����r����� fallback_funcrH���s��� r����serve_clientzServer.serve_client����s������ � � �9��+�+�-�2�2� 4���y�y���y�y���N�N� ��/�/�(�(�*�5 3�#'�'� �S��&��07�-��z�4��!�.7��.>�+�C��)���W�,�(�#�T�#�Y��9���� �#�3� �3��/�"�D�1�D�1�C��'�J�9�=�=��T�+J�F��+/�;�;�t�V�S�+I�(��� %�f�d�l�l�F� C��'�(�E�):�;��(�#�.��. �<���I�w��/�/�(�(�*��� ��!�!� �6�6�u�=��0��W�i��#��!� ��!���'0��!��"�!��(�#�Q�-�C��(���"�� ;��%�'���6�C�;�(,�(=�(=�j�(I� �!.� �$��s�"�59�"�=A�"��� )�&�1���$��;�+�Z�\�:��;����� �� � �A�$�3�3�5�:�:�<�������� 3�#�Z�\�2�� 3���!��<��+�Z�\�:�;�<���� �� � �:�!�0�0�2�7�7�9�� � �/��5�� � �1�1�5�� � ��������� �s�����2F�� D<��-F��<E6��AF��I��< E3�E�E.�E&�&E.�)F��.E3�3F��6 F �?F�F��F � F��I�)"G�I�G$�!I�#G$�$I�)AI�;I�I�I5�1I8��4I5�5I8��8 L�BL � Lc�����������������������|S�r���r=����r+���r����r����r#���s��� r����fallback_getvaluezServer.fallback_getvalue?��s������� r���c�����������������������t��������|�������S�r����rO���r����s��� r����fallback_strzServer.fallback_strB��s�������3�x�r���c�����������������������t��������|�������S�r���)�reprr����s��� r���� fallback_reprzServer.fallback_reprE��s�������C�y�r���)rW���r8���� #GETVALUEc������������������������y�r���r=����r+���rC���s��� r���rl���zServer.dummyN��s������r���c����������� �������r����|�j�������������������5��g�}t��������|�j������������������j���������������������������������}|j ���������������������������|D�]K��}|dk7��s� |j������������������d|�d|�j������������������|����dt ��������|�j������������������|���d����������dd������������M�dj������������������|�������cddd��������S�#�1�sw�Y���yxY�w) zO Return some info --- useful to spot problems with refcounting rr���z z: refcount=z r���N�K���� ) r���r!���r{���r����sortr\���rO���rz����join)r+���rC���rH���r���r����s��� r���rj���zServer.debug_infoQ��s������� ��Z�Z��F���+�+�0�0�2�3�D��I�I�K����C�<��M�M�#(�$�*=�*=�e�*D�#&�t�~�~�e�'<�Q�'?�#@��"�#E�#G��H��� ��9�9�V�$���Z�Z�s����A�B-�AB-�-B6c������������������,�����t��������|�j�������������������������S�)z* Number of shared objects )�lenr{���r����s��� r���rk���zServer.number_of_objectsa��s������ ��4�&�&�'�'r���c����������������������� �t��������j������������������d��������|j������������������d��������|�j ������������������j ���������������������������y#��ddl}|j ���������������������������Y��3xY�w#�|�j ������������������j ���������������������������w�xY�w)z' Shutdown this process z!manager received shutdown message�r?���Nr���N)r���r����r@���� traceback� print_excr�����set)r+���rC���r����s��� r���rf���zServer.shutdownh��sZ������ "��J�J�:�;� �F�F�$�%� � �O�O���!�� "�����!���O�O���!�s����&A��A�A��A:c���������� �������n����|�j�������������������5��|�j������������������|���\��}}}}|�!|st��������|�������dk7��rt��������d��������|d���} n�||i�|��} |�t ��������| �������}|�Kt��������|t���������������s$t��������dj������������������|t��������|����������������������t��������|�������t��������|�������z���}dt��������| �������z��} t��������j������������������d|| ��������| t��������|�������|f|�j������������������| <���| |�j ������������������vrd|�j ������������������| <���ddd��������|�j#������������������| ��������| t%���������������fS�#�1�sw�Y����(xY�w)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)r���ru���r����rT���rc���rN����dictrP���rQ���rR���r!���r)���r���r����r����rz���r{���rm����tuple)r+���rC���r'���rE���rF���r[���r�����method_to_typeid� proxytyper#���r����s��� r���rg���z Server.createu��sE�������Z�Z��m�m�F�+�� ;�H�g�/������C��I��N�$�N�P��P��1�g����-��-����(��-���+�!�"2�D�9�#�F�M�M�,�d�3C�.D�F�G��G���w�-�$�/?�*@�@���2�c�7�N�E��J�J�?���O�%(�#�g�,�8H�$I�D�N�N�5�!��D�/�/�/�-.��#�#�E�*�7��:� ���A�u���e�G�n�$�$�=��Z�s����C7D+�+D4c������������������L�����t��������|�j������������������|j���������������������d����������S�)zL Return the methods of the shared object indicated by token r ���)r����rz���r)���)r+���rC���r����s��� r���ri���zServer.get_methods���s!��������T�^�^�E�H�H�-�a�0�1�1r���c������������������z�����|t��������j��������������������������_��������|j������������������d��������|�j ������������������|��������y)z= Spawn a new thread to serve this connection r����N)r}���r����r^���r@���r����)r+���rC���r^���s��� r���rh���zServer.accept_connection���s0�������+/� � � �"�'� ��� �!����!�r���c������������������F����|�j�������������������5�� �|�j������������������|xx���dz ��cc<���d�d�d���������y�#�t��������$�r\}||�j������������������v�rBd|�j������������������|<���|�j������������������|���|�j������������������|<���t��������j������������������d|��������n|�Y�d�}~�id�}~ww�xY�w#�1�sw�Y���y�xY�w)Nr ���z&Server re-enabled tracking & INCREF %r)r���r{���r����r|���rz���r���r����)r+���rC���r����r����s��� r���rm���z Server.incref���s������� �Z�Z� ��#�#�E�*�a�/�*���Z����� � ��D�6�6�6�12�D�'�'��.��2�2�5�9���N�N�5�)��J�J�G��O��H��P�� ����Z�s,����B�/� B�AB� B�B�B�B c����������� �������l����||�j�������������������vr%||�j������������������v�rt��������j������������������d|��������y�|�j������������������5��|�j�������������������|���dk��r6t��������dj ������������������||�j������������������|���|�j�������������������|������������������|�j�������������������|xx���dz��cc<���|�j�������������������|���dk(��r |�j�������������������|=�d�d�d���������||�j�������������������vrHd|�j������������������|<���t��������j������������������d|��������|�j������������������5��|�j������������������|=�d�d�d���������y�y�#�1�sw�Y����`xY�w#�1�sw�Y���y�xY�w)NzServer DECREF skipping %rr���z+Id {0!s} ({1!r}) has refcount {2:n}, not 1+r ���)Nr=���Nzdisposing of obj with id %r)r{���r|���r���r����r����AssertionErrorrQ���rz���)r+���rC���r����s��� r���rn���z Server.decref���s�������+�+�+��T�/�/�/��J�J�2�E�:�� �Z�Z��"�"�5�)�Q�.�$�A�H�H��t�~�~�e�4��+�+�E�2�4�5��5�� ����&�!�+�&��"�"�5�)�Q�.��'�'��.������+�+�+��%5�D�N�N�5�!��J�J�4�e�<�����N�N�5�)�����,���Z��$���s�����A?D�D*�D'�*D3N)r7���r9���r:���r;���r����r,���r����r����r����r����r����r����r����r����r����rl���rj���rk���rf���rg���ri���rh���rm���rn���r=���r���r���re���re�������s�������N�F�&�$�,�2�< �O�b����� �%� �� �%� (�"�"%�H2���"*r���re���c�������������������������e�Zd�ZdgZdZdZdZy)�State�valuer���r �������N)r7���r9���r:���r<����INITIAL�STARTED�SHUTDOWNr=���r���r���r����r�������s������� �I��G��G��Hr���r����)�pickle� xmlrpclibc�������������������������e�Zd�ZdZi�ZeZ � �ddd�d�Zd��Zd��Z dd�Z e �dd ���������Zd ��Z dd�Zd��Zd ��Zd��Zd��Zed����������Zed����������Ze � �dd���������Zy)r���z! Base class for managers Ng�������?)�shutdown_timeoutc�����������������P����|�t��������j��������������������������j������������������}||�_��������t��������j������������������|�������|�_��������t ����������������|�_��������t��������j������������������|�j������������������_ ��������||�_ ��������t��������|���\��|�_��������|�_ ��������|xs �t����������������|�_��������||�_��������y�r���)r���r����rw����_addressrv����_authkeyr�����_stater����r�����_serializerrx���� _Listener�_Clientr����_ctx�_shutdown_timeout)r+���r(���rw���r�����ctxr����s��� r���r,���zBaseManager.__init__���s~�������?��-�-�/�7�7�G��� ��4�4�W�=�� ��g���!�M�M�����%���'6�z�'B�$������(�;�=�� �!1��r���c�����������������������|�j�������������������j������������������t��������j������������������k7��r�|�j�������������������j������������������t��������j������������������k(��rt��������d��������|�j�������������������j������������������t��������j������������������k(��rt��������d��������t��������dj������������������|�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����rQ���re���� _registryr����r����r����r.���s��� r���� get_serverzBaseManager.get_server���s���������;�;���� � �-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D��D��d�n�n�d�m�m��m�m�T�%5�%5�7�� 7r���c������������������������t���������|�j���������������������\��}}�||�j������������������|�j��������������������������}t ��������|dd��������t ��������j������������������|�j������������������_��������y)z> Connect manager object to the server process �rw���Nrl���) rx���r����r����r����rI���r����r����r����r����)r+���r����r����r����s��� r����connectzBaseManager.connect��sI�������+�4�+;�+;�<���&��d�m�m�T�]�]�;����t�W�%�!�M�M����r���c����������� �����������|�j�������������������j������������������t��������j������������������k7��r�|�j�������������������j������������������t��������j������������������k(��rt��������d��������|�j�������������������j������������������t��������j������������������k(��rt��������d��������t��������dj������������������|�j�������������������j���������������������������������|�t��������|�������st��������d��������t��������j������������������d��������\��}}|�j������������������j������������������t��������|��������j������������������|�j ������������������|�j"������������������|�j$������������������|�j&������������������|||f��������|�_��������d j+������������������d ��|�j(������������������j,������������������D����������������}t��������|��������j.������������������dz���|z���|�j(������������������_��������|�j(������������������j3���������������������������|j5���������������������������|j7��������������������������|�_��������|j5���������������������������t��������j������������������|�j�������������������_��������t9��������j:������������������|�t��������|��������j<������������������|�j(������������������|�j"������������������|�j$������������������|�j�������������������|�j>������������������|�j@������������������fd� �������|�_!��������y)z@ Spawn a server process for this manager object r����r����r����Nzinitializer must be a callableF)�duplexr�����:c��������������3����2���K����|�]��}t��������|������������y��wr���r����)�.0�is��� r���� <genexpr>z$BaseManager.start.<locals>.<genexpr>0��s���������A�)@�A��Q��)@�s�����-r����rE����exitpriority)"r����r����r����r����r����r ���r����rQ���r[���rP���r ����Piper�����ProcessrR����_run_serverr����r����r����r�����_processr����� _identityr7���r^���r����r����rA���r����Finalize�_finalize_managerr����r����rf���)r+����initializer�initargs�reader�writerr����s��� r���r����zBaseManager.start��s��������;�;���� � �-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D��D���"�8�K�+@��<�=�=��$����6������ � �)�)���:�)�)��.�.�$�-�-�����"�"�F�K��C��*���� � ����A����)@�)@�A�A��!�$�Z�0�0�C�7�%�?�� � ��� � ����� ������� �� ������"�M�M������ � ��$�t�*�.�.��-�-����� � �t�{�{��,�,�� 6� 6�8�� �� r���c������������������T����t��������j�������������������t���������j������������������t���������j��������������������������|��||���|�j������������������||||�������}|j ������������������|j ��������������������������|j ���������������������������t��������j������������������d|j ��������������������������|j���������������������������y)z@ Create a server, report its address and run it Nzmanager serving at %r) �signal�SIGINT�SIG_IGN�_Serverr@���r(���r����r���r����r����) �clsru���r(���rw���r����r��r��r���servers ��� r���r��zBaseManager._run_serverB��sz������� � � �f�m�m�V�^�^�4��"���"�����X�w���D��� ���F�N�N�#������ � � �)�6�>�>�:����r���c�����������������V����|�j�������������������j������������������t��������j������������������k(��sJ�d���������|�j ������������������|�j ������������������|�j��������������������������} �t��������|dd|f|z���|�������\��}}|j���������������������������t��������||�j ������������������|�������|fS�#�|j���������������������������w�xY�w)zP Create a new shared object; return the token and exposed tuple zserver not yet startedr��Nrg���) r����r����r����r����r����r����r����rI���r����r���)r+���r'���rE���rF���r����r)���r����s��� r����_createzBaseManager._createY��s���������{�{� � �E�M�M�1�K�3K�K�1��|�|�D�M�M�4�=�=�|�A�� �"�4��x�&��4���N�K�B���J�J�L��V�T�]�]�B�/��8�8��� �J�J�L�s����B��B(c�����������������������|�j��������������������>|�j�������������������j������������������|��������|�j�������������������j��������������������������sd|�_���������yyy)zC Join the manager process (if it has been spawned) N)r��r�����is_alive�r+����timeouts��� r���r����zBaseManager.joine��sA��������=�=�$��M�M���w�'��=�=�)�)�+� $�� ��,��%r���c�����������������������|�j������������������|�j������������������|�j��������������������������} �t��������|dd�������|j ���������������������������S�#�|j ���������������������������w�xY�w)zS Return some info about the servers shared objects and connections r��Nrj����r����r����r����rI���r����r����s��� r����_debug_infozBaseManager._debug_infon��sB��������|�|�D�M�M�4�=�=�|�A�� ��D�$��5��J�J�L��D�J�J�L������A��Ac�����������������������|�j������������������|�j������������������|�j��������������������������} �t��������|dd�������|j ���������������������������S�#�|j ���������������������������w�xY�w)z5 Return the number of shared objects r��Nrk���r&��r����s��� r����_number_of_objectszBaseManager._number_of_objectsx��sC��������|�|�D�M�M�4�=�=�|�A�� ��D�$�(;�<��J�J�L��D�J�J�L�r(��c�����������������������|�j�������������������j������������������t��������j������������������k(��r|�j ���������������������������|�j�������������������j������������������t��������j ������������������k7��r�|�j�������������������j������������������t��������j������������������k(��rt ��������d��������|�j�������������������j������������������t��������j������������������k(��rt ��������d��������t ��������dj������������������|�j�������������������j���������������������������������|�S�)NzUnable to start serverr����r����) r����r����r����r����r����r����r ���r����rQ���r.���s��� r���� __enter__zBaseManager.__enter__���s��������;�;���� � �-��J�J�L��;�;���� � �-��{�{� � �E�M�M�1�"�#;�<�<����"�"�e�n�n�4�"�#:�;�;�"�(�/�/����0A�0A�B�D��D��r���c������������������$�����|�j���������������������������y�r���)rf����r+����exc_type�exc_val�exc_tbs��� r����__exit__zBaseManager.__exit__���s������� � �r���c������������������������|�j����������������������������rt��������j������������������d�������� ��|||��������} �t��������|dd��������|j ��������������������������� ��|�j������������������|����������|�j���������������������������r�t��������j������������������d��������t��������|�d�������r�t��������j������������������d���������|�j����������������������������|�j������������������|����������|�j���������������������������r7t��������j������������������d ���������|�j����������������������������|�j���������������������������t��������j������������������|_�������� �t��������j������������������|=�y#�|j ���������������������������w�xY�w#�t ��������$�r�Y���w�xY�w#�t��������$�r�Y�yw�xY�w) zQ Shutdown the manager process; will be registered as a finalizer z#sending shutdown message to managerr��Nrf���)r$��zmanager still alive� terminatez'trying to `terminate()` manager processz#manager still alive after terminate)r"��r���r����rI���r����r����r�����hasattrr4���killr����r����r����r����_address_to_localr����)r���r(���rw���r2���r����r����r����s��� r���r��zBaseManager._finalize_manager���s*�������7�����I�I�;�<� ��w��8��!��T�4��4��J�J�L�� �G�L�L�!1�2��w���!�� � �/�0��7�K�0��I�I�G�H�%�G�%�%�'� �G�L�L�)9�:�'�w�'�'�)�� � �"G�H�$�����$������n�n��� ��+�+�G�4��%��J�J�L���� �� ��$��� �� �s:���� E�� E���E��.E%���E�E�� E"�!E"�% E1�0E1c�����������������������|�j�������������������S�r���)r����r.���s��� r���r(���zBaseManager.address���s�������}�}�r���c�������������������������d|�j�������������������vr|�j������������������j��������������������������|�_����������t���������|xs �t ���������dd�������}|xs �t ���������dd�������}|rWt��������|j ���������������������������������D�];��\��}}t��������|�������t��������u�s J�d|z�����������t��������|�������t��������u�r�3J�d|z������������|||�f|�j�������������������<���|r��fd�} �| _ ��������t��������|��| ��������yy)z9 Register a typeid with the manager type r����N� _exposed_�_method_to_typeid_z%r is not a stringc�����������������(�����t��������j������������������d����������|�j�������������������g|��i�|��\��}}��||�j������������������|�|�j������������������|��������}|�j������������������|j������������������|�j��������������������������}t��������|d�d|j������������������f��������|S�)Nz)requesting creation of a shared %r object��managerrw���r����r��rn���) r���r����r ��r����r����r����r(���rI���r)���) r+���rE���rF���r�����exp�proxyr����r����r'���s ��� ��r���r]���z"BaseManager.register.<locals>.temp���s��������� � �F��O�)�T�\�\�&�@�4�@�4�@� ��s�!��4�+�+�T� �M�M�3�����|�|�E�M�M�4�=�=�|�I����t�X����{�;��r���)�__dict__r�����copy� AutoProxyrZ���r!���r���rR���rO���r7����setattr) r��r'���r[���r����r����r����� create_method�keyr����r]���s ��� ` ` r����registerzBaseManager.register���s����������c�l�l�*��M�M�.�.�0�C�M���!�I��B�W�Y��T�B��+��J�"�9�.B�D�I�� ���"�#3�#9�#9�#;�<� ��U��C�y�C�'�C�)=��)C�C�'��E�{�c�)�G�+?�%�+G�G�)��=� � �g�/��!�� � �f���� ��#�D�M��C���&��r���)NNr����Nrs���r���)NNNNT)r7���r9���r:���r;���r����re���r��r,���r����r��r�����classmethodr��r ��r����r'��r*��r,��r2���staticmethodr���propertyr(���rG��r=���r���r���r���r������s����������I��G�>F��2�/2�2� 7�*�)�V��/1�����, 9�%������� ��� �D��������EI�6:�%'���%'r���r���c�������������������������e�Zd�Zd��Zd��Zy)�ProcessLocalSetc������������������2�����t��������j������������������|�d����������y�)Nc������������������"�����|�j��������������������������S�r���)�clearr"���s��� r����<lambda>z*ProcessLocalSet.__init__.<locals>.<lambda>���s ������3�9�9�;r���)r����register_after_forkr.���s��� r���r,���zProcessLocalSet.__init__���s������� � ��'>�?r���c�����������������������t��������|��������dfS�rs���)rR���r.���s��� r���� __reduce__zProcessLocalSet.__reduce__���s�������D�z�2�~�r���N)r7���r9���r:���r,���rS��r=���r���r���rL��rL�����s ������@�r���rL��c�������������������������e�Zd�ZdZi�Z�ej��������������������������ZdZ � �dd�Z d��Z di�fd�Zd��Zd ��Z ed ����������Zd��Zd��Zd ��Zd��Zd��Zy)r���z. A base for proxies of shared objects r ���Nc������������������n����t���������j������������������5��t���������j������������������j������������������|j������������������d��������}|�;t��������j��������������������������t����������������f}|t���������j������������������|j������������������<���t���������j������������������|�_ ��������t���������xj������������������dz ��c_��������d�d�d���������d���|�_ ��������|d���|�_��������||�_��������|�j������������������j������������������|�_��������||�_��������||�_��������t"��������|���d���|�_��������||�_��������|�t)��������j*������������������|�������|�_��������nK|�j�������������������|�j������������������j,������������������|�_��������n#t)��������j.��������������������������j0������������������|�_��������|r|�j3���������������������������t��������j4������������������|�t���������j6��������������������������y�#�1�sw�Y�����xY�w)Nr ���r���)r����_mutexr7��r����r(���r����ForkAwareLocalrL���_next_serial�_serial�_tls�_all_serials�_tokenr)����_id�_managerr����rx���r�����_owned_by_managerr���rv���r����r����rw����_increfrQ���_after_fork) r+���r����r����r>��rw���r����rm���� manager_owned�tls_serialss ��� r���r,���zBaseProxy.__init__���sJ����� � � �#�5�5�9�9�%�-�-��N�K��"�"�1�1�3�_�5F�F��=H� �+�+�E�M�M�:�$�1�1�D�L��"�"�a�'�"���� ��N�� � �(��N�������;�;�>�>����� �%���&�z�2�1�5����"/�����#�8�8��A�D�M� �]�]� &� �M�M�2�2�D�M�#�3�3�5�=�=�D�M���L�L�N�� � ��y�'<�'<�=�Q�� �s����BF*�*F4c����������������������t��������j������������������d��������t��������j��������������������������j������������������}t��������j��������������������������j������������������dk7��r$|dt��������j��������������������������j������������������z���z ��}|�j������������������|�j������������������j������������������|�j��������������������������}t��������|d�d|f��������||�j������������������_ ��������y�)Nzmaking connection to manager� MainThread�|r��rh���)r���r����r���r����r^���r}���r����r����r\��r(���r����rI���rZ��r ���)r+���r^���r����s��� r����_connectzBaseProxy._connect&��s�������� � �1�2��&�&�(�-�-���#�#�%�*�*�l�:��C�)�2�2�4�9�9�9�9�D��|�|�D�K�K�/�/����|�G����t�0�4�'�:�#�� � �r���r=���c���������������������� �|�j�������������������j������������������}|j������������������|�j������������������|||f��������|j��������������������������\��}}|dk(��r|S�|dk(��r�|\��}}|�j������������������j������������������|j���������������������d���} |�j������������������j ������������������|_���������| ||�j"������������������|�j������������������|�j$������������������|��������} |�j'������������������|j ������������������|�j$��������������������������}t)��������|dd|j*������������������f��������| S�t-��������||��������#�t��������$�r\�t��������j������������������dt��������j��������������������������j��������������������������|�j���������������������������|�j�������������������j������������������}Y���aw�xY�w) 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��Nrn���)rZ��r ���r����r���r����r}���r����r^���rg��r@���r]��rA���r^��r����r'���r\��r(���r����r����r����rI���r)���rB���)r+���rD���rE���rF���r����rG���rH���r����r����r����r@��s��� r����_callmethodzBaseProxy._callmethod/��s<����� (��9�9�'�'�D�� � � �4�8�8�Z��t�4�5��y�y�{���f��9���M� �X� �#�N�G�U�� � �/�/����=�b�A�I� �K�K�/�/�E�M���t�'�'����� � �w��E���<�<�� � �t�}�}�<�E�D��T�4��E�H�H�;�7��L��t�V�,�,��-��� (��J�J�<� �/�/�1�6�6� 8��M�M�O��9�9�'�'�D� (�s����D��A!E:�9E:c������������������$�����|�j������������������d�������S�)z9 Get a copy of the value of the referent r�����rj��r.���s��� r���� _getvaluezBaseProxy._getvalueM��s�����������,�,r���c�����������������������|�j�������������������r+t��������j������������������d|�j������������������j��������������������������y�|�j������������������|�j������������������j������������������|�j��������������������������}t��������|d�d|�j������������������f��������t��������j������������������d|�j������������������j��������������������������|�j������������������j������������������|�j��������������������������|�j������������������xr�|�j������������������j������������������}t��������j������������������|�t ��������j"������������������|�j������������������|�j������������������|�j������������������||�j$������������������|�j������������������|�j ������������������fd��������|�_��������y�)Nz%owned_by_manager skipped INCREF of %rr��rm���z INCREF %r� ���r��)r_��r���r����r\��r)���r����r(���r����rI���r]��r[���addrY��r^��r����r��r����_decrefrZ���_close)r+���r����r2���s��� r���r`��zBaseProxy._increfS��s��������!�!��J�J�>������O���|�|�D�K�K�/�/����|�G����t�X����{�3�� � �;������/������d�l�l�+�� � �6�$�-�-�"6�"6���m�m��)�#�#��+�+�t�|�|�T�]�]�E��)�)�T�.�.����>�� ��r���c������������������V����|j������������������|��������|�|j������������������t��������j������������������k(��rO �t ��������j ������������������d|�j���������������������������||�j������������������|��������}t��������|d�d|�j������������������f��������n t ��������j ������������������d|�j��������������������������|s\t��������|d�������rOt ��������j ������������������dt��������j��������������������������j��������������������������|j������������������j���������������������������|`y�y�y�#�t��������$�r }t ��������j ������������������d|��������Y�d�}~��d�}~ww�xY�w)Nz DECREF %rr��rn���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(���rI���r����r5��r}���r����r^���r ���r����) r�����serialrw���r2����tls�idsetr����r����r����s ��� r���rq��zBaseProxy._decrefg��s������� � � �f����=�E�K�K�5�=�=�8� 6�� � �;����1��u�}�}�g�>����t�X����{�;� � �J�J�>����I�����l�3��J�J�F� �/�/�1�6�6� 8��N�N� � �"��� �4�u����� 6�� � �1�1�5�5�� 6�s����A C?��? D(�D#�#D(c�����������������������d�|�_��������� �|�j���������������������������y�#�t��������$�r"}t��������j������������������d|z����������Y�d�}~y�d�}~ww�xY�w)Nzincref failed: %s)r^��r`��r����r���r����)r+���r����s��� r���ra��zBaseProxy._after_fork���s<�������� � /��L�L�N���� /��I�I�)�A�-�.�.�� /�s������ A�A���Ac������������������ ����i�}t�����������������|�j������������������|d<���t��������|�dd�������r3|�j������������������|d<���t��������t ��������|�j������������������|�j������������������|ffS�t��������t��������|��������|�j������������������|�j������������������|ffS�)Nrw����_isautoFr����) r���r����rZ���r:���RebuildProxyrC��r\��r����rR����r+���rF���s��� r���rS��zBaseProxy.__reduce__���s�����������+�"�m�m�D��O��4��E�*�"�n�n�D��O� �����T�-=�-=�t�D�F�� F��!��$�Z����d�.>�.>��E�G�� Gr���c������������������"�����|�j��������������������������S�r���)rm��)r+����memos��� r����__deepcopy__zBaseProxy.__deepcopy__���s�������~�~��r���c������������������r�����dt��������|��������j������������������|�j������������������j������������������t ��������|��������fz��S�)Nz<%s object, typeid %r at %#x>)rR���r7���r\��r'���r)���r.���s��� r���r8���zBaseProxy.__repr__���s3������.��T� �#�#�T�[�[�%7�%7��D��B�C�� Cr���c������������������f����� �|�j������������������d�������S�#�t��������$�r�t��������|��������dd�dz���cY�S�w�xY�w)zV Return representation of the referent (or a fall-back if that fails) r8���Nri��z; '__str__()' failed>)rj��r����r����r.���s��� r���rW���zBaseProxy.__str__���s=������ =��#�#�J�/�/���� =���:�c�r�?�%<�<�<� =�s������0�0�NNNTF)r7���r9���r:���r;���r7��r����ForkAwareThreadLockrV��rX��r,���rg��rj��rm��r`��rI��rq��ra��rS��r��r8���rW���r=���r���r���r���r������s|���������� %�T� %� %� '�F���L�26�HM�*>�X$��,.�B��-�<-��(������0/�G� �C�=r���r���c����������������������t��������t��������j��������������������������dd�������}|r||j������������������|j������������������k(��rct ��������j ������������������d|��������d|d<���|j������������������|j������������������vr0|j������������������|j���������������������|j������������������|j������������������<���|j������������������dd�������xr �t��������t��������j��������������������������dd��������}�|�||fd|i|��S�) z5 Function used for unpickling proxy objects. r����Nz*Rebuild a proxy owned by manager, token=%rTrb��rm����_inheritingF) rZ���r���r����r(���r���r����r)���r|���rz����pop)r_���r����r����rF���r��rm���s��� r���r{��r{�����s���������W�,�,�.�0A�4� H�F� �&�.�.�E�M�M�1�� � �?��G� $��_���8�8�6�7�7�7�� � ����*�� �(�(����2�� ����4� �� E��G�+�+�-�}�e�D�D������z�9�&�9�D�9�9r���c������������������������t��������|�������} �||�|f���S�#�t��������$�r�Y�nw�xY�wi�}|D�]��}t��������d|�d|�d�|����������t��������|�t��������f|�������}||_��������|||�|f<���|S�)zB Return a proxy type whose methods are given by `exposed` zdef z:(self, /, *args, **kwds): return self._callmethod(z , args, kwds))r����r�����execrR���r���r:��)r^���r�����_cache�dic�meth� ProxyTypes��� r���� MakeProxyTyper������s���������G�n�G� ��t�W�o�&�&���� �� ��� �C����6:�D�B�CF� H�����T�I�<��-�I�!�I��'�F�D�'�?���s������ � c������������������p����t���������|���d���}|�4�||�j������������������|��������} �t��������|dd|�f�������}|j���������������������������|�|�|j������������������}|�t��������j��������������������������j������������������}t��������d|�j������������������z��|�������} �| |�|||||��������} d| _ ��������| S�#�|j���������������������������w�xY�w)z* Return an auto-proxy for `token` r ���Nr��ri���z AutoProxy[%s])r>��rw���rm���rb��T)rx���r(���rI���r����r����r���r����rw���r���r'���rz��)r����r����r>��rw���r����rm���rb��r����r����r���r@��s��� r���rC��rC�����s������� ��j�)�!�,�G����u�}�}�g�6�� ��t�T�=�5�(�C�G��J�J�L���7�.��"�"�����)�)�+�3�3���o����<�g�F�I��e�Z��'�#�=� B�E��E�M��L��� �J�J�L�s����B#��#B5c�������������������������e�Zd�Zd��Zd��Zy)� Namespacec�����������������:�����|�j�������������������j������������������|��������y�r���)rA���updater|��s��� r���r,���zNamespace.__init__���s������� � ���T�"r���c������������������&����t��������|�j������������������j���������������������������������}g�}|D�]-��\��}}|j������������������d�������r�|j ������������������|�d|�����������/�|j���������������������������|�j������������������j�������������������ddj������������������|��������d�S�)Nrb����=�(�, r5���) r!���rA��r���� startswithr\���r����r6���r7���r����)r+���r���r]���r^���r����s��� r���r8���zNamespace.__repr__���sq�������T�]�]�(�(�*�+���� �K�D�%��?�?�3�'����t�U�3�4��!�� � � ���>�>�2�2�D�I�I�d�O�D�Dr���N)r7���r9���r:���r,���r8���r=���r���r���r���r������s ������#�Er���r���c��������������������8�����e�Zd�Zdd�Zd��Zd��Zd��Z�eee�������Zy)�Valuec������������������ �����||�_���������||�_��������y�r���)� _typecode�_value)r+���r���r�����locks��� r���r,���zValue.__init__���s������!�����r���c�����������������������|�j�������������������S�r����r���r.���s��� r���r����z Value.get��s�������{�{�r���c�����������������������||�_���������y�r���r����r+���r����s��� r���r����z Value.set��s ��������r���c������������������f�����t��������|��������j�������������������d|�j�������������������d|�j�������������������d�S�)Nr���r���r5���)rR���r7���r���r���r.���s��� r���r8���zValue.__repr__��s!������!�$�Z�0�0�$�.�.�$�+�+�N�Nr���N�T) r7���r9���r:���r,���r����r����r8���rJ��r����r=���r���r���r���r������s#���������O��S�#��Er���r���c������������������.�����t��������j�������������������|�|�������S�r���)r���)r����sequencer���s��� r����Arrayr��� ��s�������;�;�x��*�*r���c��������������������.�����e�Zd�ZdZd��Zd��Zd��Zd��Zd��Zy)� IteratorProxy)�__next__r@����throwr����c�����������������������|�S�r���r=���r.���s��� r����__iter__zIteratorProxy.__iter__����������r���c������������������&�����|�j������������������d|�������S�)Nr���rl���r+���rE���s��� r���r���zIteratorProxy.__next__��s��������� �D�1�1r���c������������������&�����|�j������������������d|�������S�)Nr@���rl��r���s��� r���r@���zIteratorProxy.send��s�����������-�-r���c������������������&�����|�j������������������d|�������S�)Nr���rl��r���s��� r���r���zIteratorProxy.throw��������������.�.r���c������������������&�����|�j������������������d|�������S�)Nr����rl��r���s��� r���r����zIteratorProxy.close��r���r���N) r7���r9���r:���r:��r���r���r@���r���r����r=���r���r���r���r�����s ������6�I��2�.�/�/r���r���c��������������������*�����e�Zd�ZdZdd�Zd��Zd��Zd��Zy)� AcquirerProxy)�acquire�releaseNc������������������8�����|�|fn||f}|�j������������������d|�������S��Nr���rl��)r+����blockingr$��rE���s��� r���r���zAcquirerProxy.acquire ��s'������%�o��{�H�g�3F����� �4�0�0r���c������������������$�����|�j������������������d�������S��Nr���rl��r.���s��� r���r���zAcquirerProxy.release#������������ �*�*r���c������������������$�����|�j������������������d�������S�r���rl��r.���s��� r���r,��zAcquirerProxy.__enter__%��r���r���c������������������$�����|�j������������������d�������S�r���rl��r.��s��� r���r2��zAcquirerProxy.__exit__'��r���r���)TN)r7���r9���r:���r:��r���r���r,��r2��r=���r���r���r���r�����s������&�I�1�+�+�+r���r���c��������������������.�����e�Zd�ZdZdd�Zdd�Zd��Zdd�Zy) �ConditionProxy)r���r���r�����notify� notify_allNc������������������(�����|�j������������������d|f�������S��Nr����rl��r#��s��� r���r����zConditionProxy.wait-�������������� �3�3r���c������������������(�����|�j������������������d|f�������S�)Nr���rl��)r+����ns��� r���r���zConditionProxy.notify/��s����������1�$�/�/r���c������������������$�����|�j������������������d�������S�)Nr���rl��r.���s��� r���r���zConditionProxy.notify_all1��s����������-�-r���c�������������������������|��������}|r|S�|�t��������j��������������������������|z���}nd�}d�}|s<|�|t��������j��������������������������z ��}|dk��r �|S�|�j���������������������������|��������}|s�<|S�)Nr���)�time� monotonicr����)r+���� predicater$��rH����endtime�waittimes��� r����wait_forzConditionProxy.wait_for3��s~�����������M����n�n�&��0�G��G��H���"�"�T�^�^�%5�5���q�=���� �� �I�I�h���[�F� ���� r���r���)r ���)r7���r9���r:���r:��r����r���r���r���r=���r���r���r���r���+��s������F�I�4�0�.�r���r���c��������������������*�����e�Zd�ZdZd��Zd��Zd��Zdd�Zy)� EventProxy)r����r����rO��r����c������������������$�����|�j������������������d�������S�)Nr����rl��r.���s��� r���r����zEventProxy.is_setH��s����������)�)r���c������������������$�����|�j������������������d�������S��Nr����rl��r.���s��� r���r����zEventProxy.setJ�������������&�&r���c������������������$�����|�j������������������d�������S�)NrO��rl��r.���s��� r���rO��zEventProxy.clearL�������������(�(r���Nc������������������(�����|�j������������������d|f�������S�r���rl��r#��s��� r���r����zEventProxy.waitN��r���r���r���)r7���r9���r:���r:��r����r����rO��r����r=���r���r���r���r���F��s������2�I�*�'�)�4r���r���c��������������������T�����e�Zd�ZdZd d�Zd��Zd��Zed����������Zed����������Z ed����������Z y) �BarrierProxy)�__getattribute__r�����abort�resetNc������������������(�����|�j������������������d|f�������S�r���rl��r#��s��� r���r����zBarrierProxy.waitT��r���r���c������������������$�����|�j������������������d�������S�)Nr���rl��r.���s��� r���r���zBarrierProxy.abortV��r���r���c������������������$�����|�j������������������d�������S�)Nr���rl��r.���s��� r���r���zBarrierProxy.resetX��r���r���c������������������&�����|�j������������������dd�������S�)Nr���)�partiesrl��r.���s��� r���r���zBarrierProxy.partiesZ��s��������� 2�L�A�Ar���c������������������&�����|�j������������������dd�������S�)Nr���)� n_waitingrl��r.���s��� r���r���zBarrierProxy.n_waiting]��s��������� 2�N�C�Cr���c������������������&�����|�j������������������dd�������S�)Nr���)�brokenrl��r.���s��� r���r���zBarrierProxy.broken`��s��������� 2�K�@�@r���r���)r7���r9���r:���r:��r����r���r���rJ��r���r���r���r=���r���r���r���r���R��sR������>�I�4�)�)� �B���B� �D���D� �A���Ar���r���c��������������������"�����e�Zd�ZdZd��Zd��Zd��Zy)�NamespaceProxy)r����__setattr__�__delattr__c������������������~�����|d���dk(��rt���������j������������������|�|�������S�t���������j������������������|�d�������}�|d|f�������S�)Nr���rb���rj��r���)�objectr����r+���rF��� callmethods��� r����__getattr__zNamespaceProxy.__getattr__g��sB�������q�6�S�=��*�*�4��5�5��,�,�T�=�A� ��,�s�f�5�5r���c�����������������������|d���dk(��rt���������j������������������|�||�������S�t���������j������������������|�d�������}�|d||f�������S�)Nr���rb���rj��r���)r���r���r���)r+���rF��r����r���s��� r���r���zNamespaceProxy.__setattr__l��sE�������q�6�S�=��%�%�d�C��7�7��,�,�T�=�A� ��-�#�u��6�6r���c������������������~�����|d���dk(��rt���������j������������������|�|�������S�t���������j������������������|�d�������}�|d|f�������S�)Nr���rb���rj��r���)r���r���r���r���s��� r���r���zNamespaceProxy.__delattr__q��sA�������q�6�S�=��%�%�d�C�0�0��,�,�T�=�A� ��-�#��0�0r���N)r7���r9���r:���r:��r���r���r���r=���r���r���r���r���e��s������B�I�6� 7� 1r���r���c��������������������R�����e�Zd�ZdZd��Zd��Z�eee�������Z�ee j�������������������������Zy)� ValueProxy)r����r����c������������������$�����|�j������������������d�������S�)Nr����rl��r.���s��� r���r����zValueProxy.getz��r���r���c������������������(�����|�j������������������d|f�������S�r���rl��r���s��� r���r����zValueProxy.set|��s�����������x�0�0r���N)r7���r9���r:���r:��r����r����rJ��r����rH���types�GenericAlias�__class_getitem__r=���r���r���r���r���x��s.�������I�'�1��S�#��E�#�E�$6�$6�7�r���r���� BaseListProxy)�__add__�__contains__�__delitem__�__getitem__�__len__�__mul__�__reversed__�__rmul__�__setitem__r\����count�extend�index�insertr����remove�reverser�����__imul__c�������������������������e�Zd�Zd��Zd��Zy)� ListProxyc������������������,�����|�j������������������d|f��������|�S�)Nr��rl��r���s��� r����__iadd__zListProxy.__iadd__���s����������E�8�,��r���c������������������,�����|�j������������������d|f��������|�S�)Nr ��rl��r���s��� r���r ��zListProxy.__imul__���s����������e�X�.��r���N)r7���r9���r:���r��r ��r=���r���r���r��r�����s�������r���r��� DictProxy)r���r���r���r���r���r��rO��rB��r����r���r���r����popitem� setdefaultr���r���r����Iterator� ArrayProxy)r���r���r��� PoolProxy)�apply�apply_asyncr�����imap�imap_unorderedr�����map� map_async�starmap� starmap_asyncr4���AsyncResult)r��r��r��r��r��c�������������������������e�Zd�Zd��Zd��Zy)r��c�����������������������|�S�r���r=���r.���s��� r���r,��zPoolProxy.__enter__���r���r���c������������������$�����|�j���������������������������y�r���)r4��r.��s��� r���r2��zPoolProxy.__exit__���s���������r���N)r7���r9���r:���r,��r2��r=���r���r���r��r�����s�������r���c�������������������������e�Zd�ZdZy)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)r7���r9���r:���r;���r=���r���r���r���r������s������r���r����Queue� JoinableQueuer����r~����RLock� Semaphore�BoundedSemaphore� Condition�Barrier�Poolr!���r����r���)r����rE��)rE��c��������������������>�����e�Zd�ZdZg�fd�Zd��Zd��Zd��Zd��Zd��Z d��Z y ) �_SharedMemoryTrackerz+Manages one or more shared memory segments.c������������������ �����||�_���������||�_��������y�r�����shared_memory_context_name� segment_names)r+���r^���r0��s��� r���r,���z_SharedMemoryTracker.__init__���s������.2�D�+�!.�D�r���c�����������������������t��������j������������������d|�dt���������������������������|�j������������������j ������������������|��������y)z6Adds the supplied shared memory block name to tracker.zRegister segment � in pid N)r���r����r���r0��r\����r+����segment_names��� r����register_segmentz%_SharedMemoryTracker.register_segment���s3�������J�J�*�<�*:�(�6�8�*�M�N����%�%�l�3r���c������������������������t��������j������������������d|�dt���������������������������|�j������������������j ������������������|��������t��������j������������������|�������}|j���������������������������|j���������������������������y)z�Calls unlink() on the shared memory block with the supplied name and removes it from the list of blocks being tracked.zDestroy segment r2��N) r���r����r���r0��r��r����SharedMemoryr�����unlink)r+���r4���segments��� r����destroy_segmentz$_SharedMemoryTracker.destroy_segment���sX������� �J�J�)�,�)9��&�(��L�M����%�%�l�3�#�0�0��>�G��M�M�O��N�N�r���c������������������N�����|�j�������������������dd�D�]��}|�j������������������|����������y)z<Calls destroy_segment() on all tracked shared memory blocks.N)r0��r:��r3��s��� r���r8��z_SharedMemoryTracker.unlink���s%������ $� 2� 2�1� 5���$�$�\�2��!6r���c�����������������������t��������j������������������d|�j������������������j��������������������dt ���������������������������|�j���������������������������y�)NzCall z.__del__ in )r���r����r6���r7���r���r8��r.���s��� r����__del__z_SharedMemoryTracker.__del__���s1�������J�J��t�~�~�6�6�7�|�F�H�:�N�O��K�K�Mr���c������������������2�����|�j�������������������|�j������������������fS�r���r.��r.���s��� r���r/���z!_SharedMemoryTracker.__getstate__���s�������3�3�T�5G�5G�H�Hr���c������������������"������|�j�������������������|���y�r���)r,���r1���s��� r���r3���z!_SharedMemoryTracker.__setstate__���s�������D�M�M�5�!r���N)r7���r9���r:���r;���r,���r5��r:��r8��r=��r/���r3���r=���r���r���r,��r,�����s,������5�/1�� /� 4� � 3� � I� "r���r,��c��������������������R�����e�Zd�Zej������������������g�d�z���Zd��Zd��Zd��Zd��Zd��Z d��Z y) �SharedMemoryServer)� track_segment�release_segment� list_segmentsc����������������������t��������j������������������|�g|��i�|���|�j������������������}t��������|t���������������rt��������j������������������|�������}t��������d|��dt��������������������������|�_ ��������t��������j������������������dt���������������������������y�)N�shm_rb���z"SharedMemoryServer started by pid )re���r,���r(���rN���rt����os�fsdecoder,��r����shared_memory_contextr���r����)r+���rE����kwargsr(���s��� r���r,���zSharedMemoryServer.__init__��sn�������O�O�D�2�4�2�6�2��l�l�G��'�5�)��+�+�g�.��$�t�G�9�A�f�h�Z�%@�A�� �&��J�J�;�F�H�:�F�Gr���c����������������������t��������|�j������������������|���d���d�������r|�j������������������|d<���t��������j������������������|�||g|��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.ri���_shared_memory_proxyrI��)r5��ru���rI��re���rg���)r+���rC���r'���rE���rJ��s��� r���rg���zSharedMemoryServer.create��sK��������t�}�}�V�,�R�0�2H�I�26�2L�2L��.�/��=�=��q�&�B�4�B�6�B�Br���c������������������b�����|�j�������������������j���������������������������t��������j������������������|�|�������S�)zACall unlink() on all tracked shared memory, terminate the Server.)rI��r8��re���rf���r����s��� r���rf���zSharedMemoryServer.shutdown��s%�������&�&�-�-�/��?�?�4��+�+r���c������������������:�����|�j�������������������j������������������|��������y)z?Adds the supplied shared memory block name to Server's tracker.N)rI��r5���r+���rC���r4��s��� r���rB��z SharedMemoryServer.track_segment��s�������&�&�7�7��Er���c������������������:�����|�j�������������������j������������������|��������y)z�Calls unlink() on the shared memory block with the supplied name and removes it from the tracker instance inside the Server.N)rI��r:��rO��s��� r���rC��z"SharedMemoryServer.release_segment"��s������� �&�&�6�6�|�Dr���c������������������.�����|�j�������������������j������������������S�)zbReturns a list of names of shared memory blocks that the Server is currently tracking.)rI��r0��r����s��� r���rD��z SharedMemoryServer.list_segments'��s��������-�-�;�;�;r���N)r7���r9���r:���re���r����r,���rg���rf���rB��rC��rD��r=���r���r���rA��rA�����s6���������F�G�� H� C� ,� F� E� <r���rA��c��������������������2�����e�Zd�ZdZeZd��Zd��Zd��Zd��Z d��Z y)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������������������������t���������j������������������dk(��rddlm}�|j ���������������������������t��������j������������������|�g|��i�|���t��������j������������������|�j������������������j��������������������dt���������������������������y�)N�posixr ���)�resource_trackerz created by pid )rG��r^�����rU���ensure_runningr���r,���r���r����r6���r7���r���)r+���rE���rJ��rU��s��� r���r,���zSharedMemoryManager.__init__9��s\�������w�w�'�!��/� �/�/�1�� � ��7��7��7��J�J�$�.�.�1�1�2�2B�6�8�*�M�Nr���c������������������p�����t��������j������������������|�j������������������j��������������������dt ���������������������������y�)Nz.__del__ by pid )r���r����r6���r7���r���r.���s��� r���r=��zSharedMemoryManager.__del__E��s'�������J�J�$�.�.�1�1�2�2B�6�8�*�M�Nr���c�����������������������|�j�������������������j������������������t��������j������������������k7��r�|�j�������������������j������������������t��������j������������������k(��rt��������d��������|�j�������������������j������������������t��������j������������������k(��rt��������d��������t��������dj������������������|�j�������������������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����rQ���r��r����r����r����r����r.���s��� r���r����zSharedMemoryManager.get_serverH��s��������{�{� � �E�M�M�1��;�;�$�$�� � �5�&�'K�L�L��[�[�&�&�%�.�.�8�&�'J�K�K�&�,�3�3�D�K�K�4E�4E�F�H��H��<�<����� � � $� � �t�/?�/?�A�� Ar���c������������������,����|�j������������������|�j������������������|�j��������������������������5�}t��������j������������������dd|��������} �t��������|dd|j������������������f�������� �ddd��������|S�#�t��������$�r}|j���������������������������|�d}~ww�xY�w#�1�sw�Y���S�xY�w)zoReturns a new SharedMemory instance with the specified size in bytes, to be tracked by the manager.r��NT)rg����sizerB��) r����r����r����r���r7��rI���r^���� BaseExceptionr8��)r+���r[��r�����smsr����s��� r���r7��z SharedMemoryManager.SharedMemoryU��s�����������d�m�m�T�]�]��C�t�#�0�0��d��N����T�4��3�8�8�+�F��D���J���%����J�J�L��G���� �D���J�s)����B �A&�& B�/B�B�B � Bc������������������N����|�j������������������|�j������������������|�j��������������������������5�}t��������j������������������|�������} �t��������|dd|j������������������j������������������f�������� �ddd��������|S�#�t��������$�r!}|j������������������j���������������������������|�d}~ww�xY�w#�1�sw�Y���S�xY�w)z�Returns a new ShareableList instance populated with the values from the input sequence, to be tracked by the manager.r��NrB��) r����r����r����r���� ShareableListrI����shmr^���r\��r8��)r+���r���r�����slr����s��� r���r_��z!SharedMemoryManager.ShareableLista��s�����������d�m�m�T�]�]��C�t�"�0�0��:����T�4��2�6�6�;�;�.�I��D���I���%����F�F�M�M�O��G���� �D���I�s(����B�#A-�- B�6B�B�B�B$N)r7���r9���r:���r;���rA��r��r,���r=��r����r7��r_��r=���r���r���r���r���-��s*������ ��%�� O� O� A� � r���r���r���)W�__all__r����r}���r��r����queuer���r���rG��r���r����r���rV��r ����contextr���r���r ���r���r���r���r���r���� HAS_SHMEMr\����ImportErrorr���rG��rR���rZ���� view_typesr$���� view_typer���r���rI���rB���r����rS���r`���rc���re���r����r����r�����XmlListener� XmlClientrx���r���r����rL��r���r{��r���rC��r���r���r���r���r���r���r���r���r���r���r���r��r��r;��r��� BasePoolProxyr��r���r#��r����r~���r%��r&��r'��r(��r)��r*��r!���r����r,��rA��r���)r^���s���0r����<module>rl�����sX�����A������� ���������� ���� ����@��@���������*����I��N�N�(�)�2��� �����5�;�;���-�4M� N�4M�D�d�$�7�2�t�$�&�'�4M� N� ���I��I���y�/�2��� �z�M�F��M�.�&(�b��)� I�C�)��C� �A�F*�V��F*�Z �F�����#�#�Z�%6�%6�7��)�)�:�+?�+?�@���t'�&��t'�t�c���t=���t=�t:�*�)+���,�8<�7<��: E��� E� �F�� �+�/�I��/� +�I�� +��]���6 4��� 4�A�9��A�&1�Y��1�&8���8���o��0��� �� ���� �+��(�� � ��� � � ��� ��<��*��� � ��k��,��� � �!��"�� �$� �� �� ��� �+�� �������W�e�k�k��*�������_�e�k�k��2�������W�i�o�o�z��:�������V�Y�^�^�]��;�������W�i�o�o�}��=�������[�)�"5�"5�}��E�������'��)C�)C�"�$�������[�)�"5�"5�~��F�������Y� � 1� 1�<��@�������V�T�Y�Y� ��2�������V�T�9��-�������V�T�9��-�������W�e�Z��0�������W�e�Z��0�������[�)�^��<�������Z�=�����N�������]�%����8�� �""��""�J*<�V��*<�Z>�k��>�g� ��k%�����I����Os����O;��P �;P�P