AlkantarClanX12

Your IP : 3.145.64.245


Current Path : /opt/alt/python310/lib64/python3.10/multiprocessing/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/multiprocessing/__pycache__/heap.cpython-310.opt-1.pyc

o

6��fj-�@s�ddlZddlmZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZdgZ
ejdkrAddlZGdd	�d	e�ZnGd
d	�d	e�Zdd�Zd
d�Ze	�ee�Gdd�de�ZGdd�de�ZdS)�N)�defaultdict�)�	reduction�assert_spawning)�util�
BufferWrapperZwin32c@s0eZdZdZe��Zdd�Zdd�Zdd�Z	dS)	�ArenazL
        A shared memory area backed by anonymous memory (Windows).
        cCsx||_td�D]!}dt��t|j�f}tjd||d�}t��dkr$n	|�	�qt
d��||_||_|j|jf|_
dS)N�dz	pym-%d-%s����ZtagnamerzCannot find name for new mmap)�size�range�os�getpid�next�_rand�mmap�_winapiZGetLastError�close�FileExistsError�name�buffer�_state)�selfr�irZbuf�r�;/opt/alt/python310/lib64/python3.10/multiprocessing/heap.py�__init__&s
�Arena.__init__cCst|�|jS�N)rr)rrrr�__getstate__5szArena.__getstate__cCs,|\|_|_|_tjd|j|jd�|_dS)Nr
r)rrrrr)r�staterrr�__setstate__9szArena.__setstate__N)
�__name__�
__module__�__qualname__�__doc__�tempfileZ_RandomNameSequencerrr r"rrrrrsrc@s8eZdZdZejdkrdgZngZd
dd�Zdd�Zd	S)rzJ
        A shared memory area backed by a temporary file (POSIX).
        Zlinuxz/dev/shmr
cCsx||_||_|dkr1tjdt��|�|�d�\|_}t�|�t�	|tj
|jf�t�|j|�t�|j|j�|_
dS)Nr
zpym-%d-)�prefix�dir)r�fdr'Zmkstemprr�_choose_dir�unlinkr�Finalizer�	ftruncaterr)rrr*rrrrrMs
�
rcCs6|jD]}t�|�}|j|j|kr|Sqt��Sr)�_dir_candidatesr�statvfs�f_bavail�f_frsizerZget_temp_dir)rr�d�strrrr+[s

�zArena._choose_dirN)r
)	r#r$r%r&�sys�platformr/rr+rrrrrCs

cCs(|jdkr	td��t|jt�|j�ffS)Nr
zDArena is unpicklable because forking was enabled when it was created)r*�
ValueError�
rebuild_arenarrZDupFd)�arrr�reduce_arenads
r:cCst||���Sr)r�detach)rZdupfdrrrr8jsr8c@szeZdZdZdZdZejfdd�Ze	dd��Z
dd�Zd	d
�Zdd�Z
d
d�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�Heap�i@cCsXt��|_t��|_||_g|_i|_i|_	i|_
tt�|_
g|_g|_d|_d|_dS�Nr)rr�_lastpid�	threadingZLock�_lock�_size�_lengths�_len_to_seq�_start_to_block�_stop_to_blockr�set�_allocated_blocks�_arenas�_pending_free_blocks�
_n_mallocs�_n_frees)rrrrrr{s



z
Heap.__init__cCs|d}|||@S)Nrr)�nZ	alignment�maskrrr�_roundup�sz
Heap._roundupcCsZ|�t|j|�tj�}|j|jkr|jd9_t�d|�t|�}|j	�
|�|d|fS)N�z"allocating a new mmap of length %dr)rO�maxrBr�PAGESIZE�_DOUBLE_ARENA_SIZE_UNTILr�inforrI�append)rr�length�arenarrr�
_new_arena�s
zHeap._new_arenacCs~|j}||jkr
dS|j�|�}|j|df=|j||f=|j�|�|j|}|�|d|f�|s=|j|=|j	�|�dSdSr>)
r�_DISCARD_FREE_SPACE_LARGER_THANrH�poprErFrI�removerDrC)rrWrV�blocks�seqrrr�_discard_arena�s

�zHeap._discard_arenac	Cs|t�|j|�}|t|j�kr|�|�S|j|}|j|}|��}|s+|j|=|j|=|\}}}|j||f=|j||f=|Sr)	�bisectZbisect_leftrC�lenrXrDrZrErF)	rrrrVr]�blockrW�start�stoprrr�_malloc�s



zHeap._mallocc	Cs�|\}}}z	|j||f}Wn	tyYnw|�|�\}}z	|j||f}Wn	ty1Ynw|�|�\}}|||f}||}z
|j|�|�Wntyb|g|j|<t�|j|�Ynw||j||f<||j||f<dSr)	rF�KeyError�_absorbrErDrUr_ZinsortrC)	rrarWrbrcZ
prev_block�_Z
next_blockrVrrr�_add_free_block�s.
��
�zHeap._add_free_blockcCs^|\}}}|j||f=|j||f=||}|j|}|�|�|s+|j|=|j�|�||fSr)rErFrDr[rC)rrarWrbrcrVr]rrrrf�s


zHeap._absorbcCs8|\}}}|j|}|�||f�|s|�|�dSdSr)rHr[r^)rrarWrbrcr\rrr�_remove_allocated_block�s

�zHeap._remove_allocated_blockcCs<	z|j��}Wn
tyYdSw|�|�|�|�qr)rJrZ�
IndexErrorrhri�rrarrr�_free_pending_blockss�

�zHeap._free_pending_blockscCs�t��|jkrtd�t��|j���|j�d�s |j�|�dSz|j	d7_	|�
�|�|�|�|�W|j�
�dS|j�
�w)Nz$My pid ({0:n}) is not last pid {1:n}Fr)rrr?r7�formatrA�acquirerJrUrLrlrhri�releaserkrrr�frees

��
z	Heap.freecCs�|dkrtd�|���tj|krtd�|���t��|jkr"|��|j	�D|j
d7_
|��|�t
|d�|j�}|�|�\}}}||}||krS|�|||f�|j|�||f�|||fWd�S1slwYdS)Nr�Size {0:n} out of range�Size {0:n} too larger)r7rmr5�maxsize�
OverflowErrorrrr?rrArKrlrOrQ�
_alignmentrdrhrH�add)rrrWrbrcZ	real_stoprrr�malloc(s"
$�zHeap.mallocN)r#r$r%rurYrSrrRr�staticmethodrOrXr^rdrhrfrirlrprwrrrrr<ss 

r<c@s"eZdZe�Zdd�Zdd�ZdS)rcCs^|dkrtd�|���tj|krtd�|���tj�|�}||f|_t	j
|tjj|fd�dS)Nrrqrr)�args)r7rmr5rsrtr�_heaprwrrr-rp)rrrarrrrFs

zBufferWrapper.__init__cCs&|j\\}}}}t|j�|||�Sr)r�
memoryviewr)rrWrbrcrrrr�create_memoryviewOszBufferWrapper.create_memoryviewN)r#r$r%r<rzrr|rrrrrBs	)r_�collectionsrrrr5r'r@�contextrr�r�__all__r6r�objectrr:r8�registerr<rrrrr�<module>s(	
$!P