MINI MINI MANI MO

Path : /lib64/python3.6/multiprocessing/__pycache__/
File Upload :
Current File : //lib64/python3.6/multiprocessing/__pycache__/heap.cpython-36.opt-1.pyc

3


 \ @sddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
dgZejdkrvddl
Z
GdddeZn,Gd	ddeZd
dZdd
ZejeeGdddeZGdddeZdS)N)	reductionassert_spawning)util
BufferWrapperZwin32c@s,eZdZejZddZddZddZdS)ArenacCsz||_xTtdD]@}dtjt|jf}tjd||d}tjdkrHP|j	qWt
d||_||_|j|jf|_
dS)Ndz	pym-%d-%sr)tagnamerzCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapiZGetLastErrorcloseFileExistsErrornamebuffer_state)selfrirZbufr,/usr/lib64/python3.6/multiprocessing/heap.py__init__"szArena.__init__cCst||jS)N)rr)rrrr__getstate__1szArena.__getstate__cCs,|\|_|_|_tjd|j|jd|_dS)Nr)r	r
)rrrrr)rstaterrr__setstate__5szArena.__setstate__N)	__name__
__module____qualname__tempfileZ_RandomNameSequencerrrrrrrrrsrc@seZdZdddZdS)rrcCs||_||_|d	krtjdtjtjd\|_}tj|tj	|tj
|jft|jdddN}d
}||krd|}xt||D]}|j
|qW~|j
d||WdQRXtj|j|j|_dS)Nrzpym-%d-)prefixdirwbF)closefdir
i)rfdr#Zmkstempr
rrZget_temp_dirunlinkFinalizeropenrwriterr)rrr)rfZbsZzeros_rrrr@s"

zArena.__init__Nr
)r
)r r!r"rrrrrr>scCs(|jdkrtdt|jtj|jffS)NrzDArena is unpicklable because forking was enabled when it was createdr
)r)
ValueError
rebuild_arenarrZDupFd)arrrreduce_arenaSs
r3cCst||jS)N)rdetach)rZdupfdrrrr1Ysr1c@sZeZdZdZejfddZeddZddZ	dd	Z
d
dZdd
ZddZ
ddZdS)HeapcCsJtj|_tj|_||_g|_i|_i|_	i|_
t|_g|_
g|_dS)N)r
r_lastpid	threadingZLock_lock_size_lengths_len_to_seq_start_to_block_stop_to_blockset_allocated_blocks_arenas_pending_free_blocks)rrrrrrfs

z
Heap.__init__cCs|d}|||@S)Nrr)nZ	alignmentmaskrrr_roundupssz
Heap._roundupc	Cstj|j|}|t|jkrj|jt|j|tj}|jd9_t	j
d|t|}|jj
||d|fS|j|}|j|}|j}|s|j|=|j|=|\}}}|j||f=|j||f=|S)Nz"allocating a new mmap of length %dr)bisectZbisect_leftr;lenrEmaxr:rPAGESIZErinforrAappendr<popr=r>)	rrrlengtharenaseqblockstartstoprrr_mallocys"



zHeap._mallocc	Cs|\}}}y|j||f}Wntk
r0YnX|j|\}}y|j||f}Wntk
rfYnX|j|\}}|||f}||}y|j|j|Wn.tk
r|g|j|<tj|j|YnX||j||f<||j||f<dS)N)	r>KeyError_absorbr=r<rLrGZinsortr;)	rrQrOrRrSZ
prev_blockr/Z
next_blockrNrrr_frees(

z
Heap._freecCs^|\}}}|j||f=|j||f=||}|j|}|j||sV|j|=|jj|||fS)N)r=r>r<remover;)rrQrOrRrSrNrPrrrrVs


zHeap._absorbcCsFx@y|jj}Wntk
r&PYnX|jj||j|qWdS)N)rBrM
IndexErrorr@rXrW)rrQrrr_free_pending_blocksszHeap._free_pending_blocksc
CsN|jjds|jj|n0z"|j|jj||j|Wd|jjXdS)NF)	r9acquirerBrLrZr@rXrWrelease)rrQrrrfreesz	Heap.freecCstj|jkr|j|jh|j|jt|d|j}|j	|\}}}||}||krj|j
|||f|||f}|jj||SQRXdS)Nr)
r
rr7rr9rZrErI
_alignmentrTrWr@add)rrrOrRrSZnew_stoprQrrrmallocs
zHeap.mallocN)r r!r"r^rrJrstaticmethodrErTrWrVrZr]r`rrrrr5bs

r5c@s"eZdZeZddZddZdS)rcCs0tjj|}||f|_tj|tjj|fddS)N)args)r_heapr`rrr+r])rrrQrrrrs
zBufferWrapper.__init__cCs&|j\\}}}}t|j|||S)N)r
memoryviewr)rrOrRrSrrrrcreate_memoryviewszBufferWrapper.create_memoryviewN)r r!r"r5rcrrerrrrrs)rGrr
sysr#r8contextrrr__all__platformrobjectrr3r1registerr5rrrrr<module>
s$
 

OHA YOOOO