????

Your IP : 3.142.172.36


Current Path : /lib/python3.10/multiprocessing/__pycache__/
Upload File :
Current File : //lib/python3.10/multiprocessing/__pycache__/heap.cpython-310.pyc

o

�*�gj-�@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�
BufferWrapper�win32c@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�����tagnamerzCannot find name for new mmap)�size�range�os�getpid�next�_rand�mmap�_winapi�GetLastError�close�FileExistsError�name�buffer�_state)�selfr�ir�buf�r�+/usr/lib/python3.10/multiprocessing/heap.py�__init__&s
�Arena.__init__cCst|�|jS�N)rr)rrrr �__getstate__5szArena.__getstate__cCs,|\|_|_|_tjd|j|jd�|_dS)Nrr)rrrrr)r�staterrr �__setstate__9szArena.__setstate__N)
�__name__�
__module__�__qualname__�__doc__�tempfile�_RandomNameSequencerr!r$r&rrrr r	sr	c@s8eZdZdZejdkrdgZngZd
dd�Zdd�Zd	S)r	zJ
        A shared memory area backed by a temporary file (POSIX).
        �linuxz/dev/shmrcCsx||_||_|dkr1tjdt��|�|�d�\|_}t�|�t�	|tj
|jf�t�|j|�t�|j|j�|_
dS)Nrzpym-%d-)�prefix�dir)r�fdr+�mkstemprr�_choose_dir�unlinkr�Finalizer�	ftruncaterr)rrr0rrrr r!Ms
�
r"cCs6|jD]}t�|�}|j|j|kr|Sqt��Sr#)�_dir_candidatesr�statvfs�f_bavail�f_frsizer�get_temp_dir)rr�d�strrr r2[s

�zArena._choose_dirN)r)	r'r(r)r*�sys�platformr6r!r2rrrr r	Cs

cCs(|jdkr	td��t|jt�|j�ffS)NrzDArena is unpicklable because forking was enabled when it was created)r0�
ValueError�
rebuild_arenarr�DupFd)�arrr �reduce_arenads
rCcCst||���Sr#)r	�detach)r�dupfdrrr r@jsr@c@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�	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)rrrrr r!{s



z
Heap.__init__cCs|d}|||@S)Nrr)�n�	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)r[�maxrMr�PAGESIZE�_DOUBLE_ARENA_SIZE_UNTILr�infor	rT�append)rr�length�arenarrr �
_new_arena�s
zHeap._new_arenacCs�|j}||jkr
dS|j�|�}|rJ�|j|df=|j||f=|j�|�|j|}|�|d|f�|sA|j|=|j	�|�dSdSrH)
r�_DISCARD_FREE_SPACE_LARGER_THANrS�poprPrQrT�removerOrN)rrcrb�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#)	�bisect�bisect_leftrN�lenrdrOrfrPrQ)	rrrrbri�blockrc�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#)	rQ�KeyError�_absorbrPrOrark�insortrN)	rrnrcrorp�
prev_block�_�
next_blockrbrrr �_add_free_block�s.
��
�zHeap._add_free_blockcCs^|\}}}|j||f=|j||f=||}|j|}|�|�|s+|j|=|j�|�||fSr#)rPrQrOrgrN)rrnrcrorprbrirrr rs�s


zHeap._absorbcCs8|\}}}|j|}|�||f�|s|�|�dSdSr#)rSrgrj)rrnrcrorprhrrr �_remove_allocated_block�s

�zHeap._remove_allocated_blockcCs<	z|j��}Wn
tyYdSw|�|�|�|�qr#)rUrf�
IndexErrorrxry�rrnrrr �_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)rrrIr?�formatrL�acquirerUrarWr|rxry�releaser{rrr �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)r?r}r=�maxsize�
OverflowErrorrrrIr!rLrVr|r[r]�
_alignmentrqrxrS�add)rrrcrorp�	real_stoprrr �malloc(s"
$�zHeap.mallocN)r'r(r)r�rer_rr^r!�staticmethodr[rdrjrqrxrsryr|r�r�rrrr rFss 

rFc@s"eZdZe�Zdd�Zdd�ZdS)rcCs^|dkrtd�|���tj|krtd�|���tj�|�}||f|_t	j
|tjj|fd�dS)Nrr�r�)�args)r?r}r=r�r�r�_heapr�rrr4r�)rrrnrrr r!Fs

zBufferWrapper.__init__cCs&|j\\}}}}t|j�|||�Sr#)r�
memoryviewr)rrcrorprrrr �create_memoryviewOszBufferWrapper.create_memoryviewN)r'r(r)rFr�r!r�rrrr rBs	)rk�collectionsrrrr=r+rJ�contextrr�r�__all__r>r�objectr	rCr@�registerrFrrrrr �<module>s(	
$!P

Page not found | The NCLEX Doctor

Page not found!

Sorry, this page is not available...