Viewing File: /opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/heap.cpython-35.opt-1.pyc



Yf @s#ddlZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	dgZ
ejdkrddlZGdd	d	e
Zn>Gd
d	d	e
ZddZd
dZejeeGddde
ZGddde
ZdS)N)context)	reduction)util
BufferWrapperwin32c@s@eZdZejZddZddZddZdS)ArenacCs||_xttdD]Z}dtjt|jf}tjd|d|}tjdkrfP|j	qWt
d||_||_|j|jf|_
dS)Ndz	pym-%d-%srtagnamerzCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapiZGetLastErrorcloseFileExistsErrornamebuffer_state)selfrirZbufr9/opt/alt/python35/lib64/python3.5/multiprocessing/heap.py__init__#s			zArena.__init__cCstj||jS)N)rZassert_spawningr)rrrr__getstate__2s
zArena.__getstate__cCs>|\|_|_|_tjd|jd|j|_dS)Nrr
r)rrrrr)rstaterrr__setstate__6szArena.__setstate__N)	__name__
__module____qualname__tempfileZ_RandomNameSequencerrrr rrrrrsrc@seZdZdddZdS)rrcCs||_||_|d
krtjddtjdtj\|_}tj|tj	|tj
|jft|jdddc}d}||krd	|}x%t||D]}|j
|qW~|j
d	||WdQRXtj|j|j|_dS)Nrprefixzpym-%d-dirwbclosefdFisri)rfdr$ZmkstemprrrZget_temp_dirunlinkFinalizeropenr
writerr)rrr)rfZbsZzeros_rrrrAs"			(

zArena.__init__Nr)r!r"r#rrrrrr?scCs:|jdkrtdt|jtj|jffS)NrzDArena is unpicklable because forking was enabled when it was createdr)r)
ValueError
rebuild_arenarrZDupFd)arrrreduce_arenaTsr3cCst||jS)N)rdetach)rZdupfdrrrr1Zsr1c@seZdZdZejddZeddZddZ	dd	Z
d
dZdd
ZddZ
ddZdS)HeapcCsmtj|_tj|_||_g|_i|_i|_	i|_
t|_g|_
g|_dS)N)rr_lastpid	threadingZLock_lock_size_lengths_len_to_seq_start_to_block_stop_to_blockset_allocated_blocks_arenas_pending_free_blocks)rrrrrrgs						z
Heap.__init__cCs|d}|||@S)Nrr)nZ	alignmentmaskrrr_roundupts
z
Heap._roundupc	Cstj|j|}|t|jkr|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>)	rrrlengtharenaseqblockstartstoprrr_malloczs"!


zHeap._mallocc	Cs$|\}}}y|j||f}Wntk
r:YnX|j|\}}y|j||f}Wntk
r{YnX|j|\}}|||f}||}y|j|j|Wn5tk
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||ss|j|=|jj|||fS)N)r=r>r<remover;)rrQrOrRrSrNrPrrrrVs



zHeap._absorbcCsQxJy|jj}Wntk
r+PYnX|jj||j|qWdS)N)rBrM
IndexErrorr@rXrW)rrQrrr_free_pending_blockss
zHeap._free_pending_blocksc
Cse|jjds%|jj|n<z+|j|jj||j|Wd|jjXdS)NF)	r9acquirerBrLrZr@rXrWrelease)rrQrrrfrees
z	Heap.freecCstj|jkr|j|j|j|jt|d|j}|j	|\}}}||}||kr|j
|||f|||f}|jj||SWdQRXdS)Nr)
rrr7rr9rZrErI
_alignmentrTrWr@add)rrrOrRrSZnew_stoprQrrrmallocs



zHeap.mallocN)r!r"r#r^rrJrstaticmethodrErTrWrVrZr]r`rrrrr5cs

r5c@s1eZdZeZddZddZdS)rcCsDtjj|}||f|_tj|tjjd|fdS)Nargs)r_heapr`rrr+r])rrrQrrrrszBufferWrapper.__init__cCs3|j\\}}}}t|j|||S)N)r
memoryviewr)rrOrRrSrrrrcreate_memoryviewszBufferWrapper.create_memoryviewN)r!r"r#r5rcrrerrrrrs	)rGrrsysr$r8rrr__all__platformrobjectrr3r1registerr5rrrrr<module>
s$	 
Back to Directory File Manager