Edit File: heap.cpython-311.opt-1.pyc
� �����fj-�����������������������"����d�dl�Z�d�dlmZ�d�dlZd�dlZd�dlZd�dlZd�dlZddlm Z m Z �ddlmZ�dgZ ej��������dk����rd�dlZ�G�d��d e������������Zn%�G�d ��d e������������Zd��Zd��Z�e j��������ee��������������G�d ��de������������Z�G�d��de������������ZdS�)�����N)�defaultdict����)� reduction�assert_spawning)�util� BufferWrapper�win32c��������������������B�����e�Zd�ZdZ�ej����������������������Zd��Zd��Zd��Z dS�)�ArenazL A shared memory area backed by anonymous memory (Windows). c������������������t����||�_���������t����������d������������D�]p}dt����������j����������������������t ����������|�j��������������������fz��}t ����������j��������d||�������������}t����������j����������������������dk����r�n$|� ������������������������������������qt����������d�������������||�_��������||�_��������|�j���������|�j��������f|�_ ��������d�S�)N�d���z pym-%d-%s�����tagnamer���zCannot find name for new mmap)�size�range�os�getpid�next�_rand�mmap�_winapi�GetLastError�close�FileExistsError�name�buffer�_state)�selfr����ir����bufs��� �;/opt/alt/python311/lib64/python3.11/multiprocessing/heap.py�__init__zArena.__init__&���s��������D�I��3�Z�Z�� G�� G��"�b�i�k�k�4�� �3C�3C�%D�D���i��D�$�7�7�7���'�)�)�Q�.�.��E�� � �����%�&E�F�F�F��D�I��D�K��9�d�i�0�D�K�K�K�����c������������������.�����t����������|��������������|�j��������S��N)r���r���)r���s��� r"����__getstate__zArena.__getstate__5���s�������D�!�!�!��;�r$���c������������������~�����|x\��|�_���������|�_��������|�_��������t����������j��������d|�j���������|�j���������������������|�_��������d�S�)Nr���r���)r���r���r���r���r���)r����states��� r"����__setstate__zArena.__setstate__9���s7������16�6� �D�I�t�y�4�;��)�B�� �4�9�E�E�E�D�K�K�Kr$���N) �__name__� __module__�__qualname__�__doc__�tempfile�_RandomNameSequencer���r#���r'���r*�����r$���r"���r���r������sb�������������� �� ��-��,�.�.�� 1�� 1�� 1� �� �� � F�� F�� F�� F�� Fr$���r���c��������������������B�����e�Zd�ZdZej��������dk����rdgZng�Zdd�Zd��ZdS�) r���zJ A shared memory area backed by a temporary file (POSIX). �linuxz/dev/shmr���c����������������������||�_���������||�_��������|dk����r�t����������j��������dt ����������j����������������������z��|����������������������|�������������������������\��|�_��������}t ����������j��������|�������������t����������j ��������|�t����������j ��������|�j��������f�������������t ����������j��������|�j��������|�������������t����������j��������|�j��������|�j���������������������|�_ ��������d�S�)Nr���zpym-%d-)�prefix�dir)r����fdr/����mkstempr���r����_choose_dir�unlinkr����Finalizer���� ftruncater���r���)r���r���r7���r���s��� r"���r#���zArena.__init__M���s��������D�I��D�G��R�x�x��!)� 0�%�b�i�k�k�1��)�)�$�/�/�!1��!1��!1� ������ �$����� �d�B�H�t�w�j�9�9�9���T�W�d�+�+�+��)�D�G�T�Y�7�7�D�K�K�Kr$���c�����������������������|�j���������D�]-}t����������j��������|������������}|j��������|j��������z��|k����r|c�S��.t����������j����������������������S�r&���)�_dir_candidatesr����statvfs�f_bavail�f_frsizer����get_temp_dir)r���r����d�sts��� r"���r9���zArena._choose_dir[���sT��������)�� �� ���Z��]�]���;���,��4�4��H�H�H��5��$�&�&�&r$���N)r���) r+���r,���r-���r.����sys�platformr>���r#���r9���r1���r$���r"���r���r���C���s^�������������� �� ���<�7�"�"�)�l�O�O� �O� 8�� 8�� 8�� 8� '�� '�� '�� '�� 'r$���c�����������������������|�j���������dk����rt����������d�������������t����������|�j��������t ����������j��������|�j���������������������ffS�)Nr���zDArena is unpicklable because forking was enabled when it was created)r7���� ValueError� rebuild_arenar���r����DupFd)�as��� r"����reduce_arenarL���d���sF�������4�2�:�:���G��H��H�� H��q�v�y��q�t�'<�'<�=�=�=r$���c������������������F�����t����������|�|�����������������������������������������������S�r&���)r����detach)r����dupfds��� r"���rI���rI���j���s�������T�5�<�<�>�>�*�*�*r$���c��������������������z�����e�Zd�ZdZdZdZej��������fd�Ze d����������������Z d��Zd��Zd��Z d��Zd ��Zd ��Zd��Zd��Zd ��ZdS�)�Heap����i��@�c����������������������t����������j����������������������|�_��������t����������j����������������������|�_��������||�_��������g�|�_��������i�|�_��������i�|�_ ��������i�|�_ ��������t����������t����������������������|�_ ��������g�|�_��������g�|�_��������d|�_��������d|�_��������d�S��Nr���)r���r����_lastpid� threading�Lock�_lock�_size�_lengths�_len_to_seq�_start_to_block�_stop_to_blockr����set�_allocated_blocks�_arenas�_pending_free_blocks� _n_mallocs�_n_frees)r���r���s��� r"���r#���z Heap.__init__{���s�������� ���� ��^�%�%�� ��� ��� ������ "����!����"-�S�!1�!1�������%'��!������� � � r$���c�����������������������|dz ��}|�|z���|�z��S�)Nr���r1���)�n� alignment�masks��� r"����_roundupz Heap._roundup����s��������1�}���D��T�E�!�!r$���c������������������.����|�����������������������t����������|�j��������|������������t����������j��������������������}|�j��������|�j��������k�����r|�xj��������dz��c_��������t ����������j��������d|�������������t����������|������������}|�j ��������� ��������������������|�������������|d|fS�)N����z"allocating a new mmap of length %dr���)rh����maxrY���r����PAGESIZE�_DOUBLE_ARENA_SIZE_UNTILr����infor���r`����append)r���r����length�arenas��� r"���� _new_arenazHeap._new_arena����s����������s�4�:�t�4�4�d�m�D�D����:��5�5�5��J�J�!�O�J�J�� �6��?�?�?��f� � ������E�"�"�"��q�&�!�!r$���c������������������T����|j���������}||�j��������k�����rd�S�|�j�����������������������������|������������}|�j��������|df=�|�j��������||f=�|�j�����������������������������|�������������|�j��������|���������}|���������������������|d|f�������������|s$|�j��������|=�|�j �����������������������������|�������������d�S�d�S�rT���) r����_DISCARD_FREE_SPACE_LARGER_THANr_����popr\���r]���r`����remover[���rZ���)r���rq���rp����blocks�seqs��� r"����_discard_arenazHeap._discard_arena����s������������D�8�8�8��F��'�+�+�E�2�2��� �%���,������0�����E�"�"�"���v�&��� � �E�1�f�%�&�&�&��� )�� ��(��M� � ��(�(�(�(�(� )�� )r$���c������������������H����t����������j��������|�j��������|������������}|t����������|�j��������������������k����r|����������������������|������������S�|�j��������|���������}|�j��������|���������}|�����������������������������������}|s|�j��������|=�|�j��������|=�|\��}}}|�j��������||f=�|�j��������||f=�|S�r&���) �bisect�bisect_leftrZ����lenrr���r[���ru���r\���r]���) r���r���r ���rp���rx����blockrq����start�stops ��� r"����_malloczHeap._malloc����s���������t�}�d�3�3����D�M�"�"�"�"��?�?�4�(�(�(��]�1�%�F��"�6�*�C��G�G�I�I�E��� ?��$�V�,�d�m�A�.>�$����t�� �%���0����� �.��r$���c�����������������������|\��}}} �|�j���������||f���������}|����������������������|������������\��}}n#�t����������$�r�Y�nw�xY�w �|�j��������||f���������}|����������������������|������������\��}}n#�t����������$�r�Y�nw�xY�w|||f}||z ��} �|�j��������|������������������������������|�������������n5#�t����������$�r(�|g|�j��������|<���t ����������j��������|�j��������|�������������Y�nw�xY�w||�j��������||f<���||�j���������||f<���d�S�r&���) r]����_absorb�KeyErrorr\���r[���ro���r{����insortrZ���) r���r~���rq���r���r����� prev_block�_� next_blockrp���s ��� r"����_add_free_blockzHeap._add_free_block����sY�����$����t� 0��,�e�U�^�<�J���|�|�J�/�/�H�E�1�1����� �� �� ��D� ���� /��-�u�d�m�<�J���l�l�:�.�.�G�A�t�t����� �� �� ��D� ���� ���t�$������ 1���V�$�+�+�E�2�2�2�2���� 1�� 1�� 1�(-�w�D��V�$��M�$�-��0�0�0�0�0� 1�����05���e�U�^�,�-2���U�D�M�*�*�*s0����0�� =�=�A)��) A6�5A6� B%��%/C�Cc������������������������|\��}}}|�j���������||f=�|�j��������||f=�||z ��}|�j��������|���������}|���������������������|�������������|s"|�j��������|=�|�j�����������������������������|�������������||fS�r&���)r\���r]���r[���rv���rZ���)r���r~���rq���r���r����rp���rx���s��� r"���r����zHeap._absorb����s�������$����t�� �%���0����� �.�������v�&��� � �5������ )�� ��(��M� � ��(�(�(��d�{�r$���c�����������������������|\��}}}|�j���������|���������}|���������������������||f�������������|s|����������������������|�������������d�S�d�S�r&���)r_���rv���ry���)r���r~���rq���r���r����rw���s��� r"����_remove_allocated_blockzHeap._remove_allocated_block����s]������"���u�d��'��.��� � �u�d�m�$�$�$��� '�����&�&�&�&�&� '�� 'r$���c����������������������� � �|�j��������������������������������������������}n#�t����������$�r�Y�d�S�w�xY�w|����������������������|�������������|����������������������|��������������Wr&���)ra���ru���� IndexErrorr����r�����r���r~���s��� r"����_free_pending_blockszHeap._free_pending_blocks��sq������ 0� ��1�5�5�7�7������ �� �� ���� ����� � ��'�'�'��(�(��/�/�/� 0s������ +�+c������������������(����t����������j����������������������|�j��������k����r9t����������d���������������������t����������j����������������������|�j���������������������������������|�j�����������������������������d������������s|�j�����������������������������|�������������d�S� �|�xj ��������dz ��c_ ��������|�� �����������������������������������|����������������������|�������������|����������������������|�������������|�j��������� �����������������������������������d�S�#�|�j��������� �����������������������������������w�xY�w)Nz$My pid ({0:n}) is not last pid {1:n}Fr���)r���r���rU���rH����formatrX����acquirera���ro���rc���r����r����r�����releaser����s��� r"����freez Heap.free��s�������9�;�;�$�-�'�'��6�=�=��I�K�K�� �/��/�0��0�� 0���z�!�!�%�(�(�� %�� �%�,�,�U�3�3�3�3�3� %�� � ��"� � ��)�)�+�+�+��$�$�U�+�+�+��,�,�U�3�3�3�� �"�"�$�$�$�$�$��� �"�"�$�$�$�$���s ���� AC6��6Dc����������������������|dk�����r"t����������d���������������������|�������������������������t����������j��������|k����r"t ����������d���������������������|�������������������������t����������j����������������������|�j��������k����r|�������������������������������������|�j ��������5��|�xj ��������dz ��c_ ��������|�������������������������������������|����������������������t����������|d������������|�j��������������������}|����������������������|������������\��}}}||z���}||k�����r|����������������������|||f�������������|�j��������|������������������������������||f�������������|||fcd�d�d��������������S�#�1�swxY�w�Y���d�S�)Nr����Size {0:n} out of range�Size {0:n} too larger���)rH���r����rE����maxsize� OverflowErrorr���r���rU���r#���rX���rb���r����rh���rk���� _alignmentr����r����r_����add)r���r���rq���r���r����� real_stops��� r"����malloczHeap.malloc(��s�������!�8�8��6�=�=�d�C�C�D�D�D��;�$���� 6� =� =�d� C� C�D�D�D� �9�;�;�$�-�'�'��M�M�O�O�O� �Z�� -�� -��O�O�q� �O�O��%�%�'�'�'��=�=��T�1���t��?�?�D�#'�<�<��#5�#5� �U�E�4����I��4�����$�$�e�Y��%=�>�>�>��"�5�)�-�-�u�i�.@�A�A�A��5�)�,� -�� -�� -�� -�� -�� -�� -�� -�� -�� -�� -�� -����� -�� -�� -�� -�� -�� -s����B0E�E�EN)r+���r,���r-���r����rt���rm���r���rl���r#����staticmethodrh���rr���ry���r����r����r����r����r����r����r����r1���r$���r"���rQ���rQ���s���s�����������������J�&3�#�,�� �M���������:��"��"���\�"� "�� "�� "�)��)��)�$�����"3��3��3�< �� �� �'��'��'�0��0��0�%��%��%�8-��-��-��-��-r$���rQ���c��������������������.�����e�Zd�Z�e��������������Zd��Zd��ZdS�)r���c������������������X����|dk�����r"t����������d���������������������|�������������������������t����������j��������|k����r"t ����������d���������������������|�������������������������t ����������j�����������������������������|������������}||f|�_��������t����������j ��������|�t ����������j��������j��������|f��������������d�S�)Nr���r����r����)�args)rH���r����rE���r����r����r����_heapr����r���r���r;���r����)r���r���r~���s��� r"���r#���zBufferWrapper.__init__F��s��������!�8�8��6�=�=�d�C�C�D�D�D��;�$���� 6� =� =�d� C� C�D�D�D��#�*�*�4�0�0���d�m���� �d�M�/�4�E�8�D�D�D�D�D�Dr$���c������������������\�����|�j���������\��\��}}}}t����������|j��������������������|||z�������������S�r&���)r���� memoryviewr���)r���rq���r���r����r���s��� r"����create_memoryviewzBufferWrapper.create_memoryviewO��s3������%)�[�"����t�d��%�,�'�'��e�D�j�(8�9�9r$���N)r+���r,���r-���rQ���r����r#���r����r1���r$���r"���r���r���B��s@���������������D�F�F�E�E��E��E�:��:��:��:��:r$���)r{����collectionsr���r���r���rE���r/���rV����contextr���r�����r����__all__rF���r����objectr���rL���rI����registerrQ���r���r1���r$���r"����<module>r�������s������� � � ��#��#��#��#��#��#������� � � � �� � � � ���������������/��/��/��/��/��/��/��/�������������� ����<�7����N�N�N�F��F��F��F��F���F��F��F��F�H'��'��'��'��'���'��'��'�B>��>��>�+��+��+���I��u�l�+�+�+�I-��I-��I-��I-��I-�6��I-��I-��I-�^:��:��:��:��:�F��:��:��:��:��:r$���