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



] @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irbufr)/opt/alt/python35/lib64/python3.5/heap.py__init__#s			zArena.__init__cCstj||jS)N)rassert_spawningr)rrrr__getstate__2s
zArena.__getstate__cCs>|\|_|_|_tjd|jd|j|_dS)Nrr
r)rrrrr)rstaterrr__setstate__6szArena.__setstate__N)	__name__
__module____qualname__tempfile_RandomNameSequencerrr r"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&mkstemprrrget_temp_dirunlinkFinalizeropenr
writerr)rrr,rfbsZzeros_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rDupFd)arrrreduce_arenaTsr:cCst||jS)N)rdetach)rZdupfdrrrr7Zsr7c@seZdZdZejddZeddZddZ	dd	Z
d
dZdd
ZddZ
ddZdS)HeapcCsmtj|_tj|_||_g|_i|_i|_	i|_
t|_g|_
g|_dS)N)rr_lastpid	threadingLock_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_leftrClenrMmaxrBrPAGESIZErinforrIappendrDpoprErF)	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)	rFKeyError_absorbrErDrTrOZinsortrC)	rrYrWrZr[Z
prev_blockr5Z
next_blockrVrrr_frees(



z
Heap._freecCs}|\}}}|j||f=|j||f=||}|j|}|j||ss|j|=|jj|||fS)N)rErFrDremoverC)rrYrWrZr[rVrXrrrr^s



zHeap._absorbcCsQxJy|jj}Wntk
r+PYnX|jj||j|qWdS)N)rJrU
IndexErrorrHr`r_)rrYrrr_free_pending_blockss
zHeap._free_pending_blocksc
Cse|jjds%|jj|n<z+|j|jj||j|Wd|jjXdS)NF)	rAacquirerJrTrbrHr`r_release)rrYrrrfrees
z	Heap.freecCstj|jkr|j|j|j|jt|d|j}|j	|\}}}||}||kr|j
|||f|||f}|jj||SWdQRXdS)Nr)
rrr>rrArbrMrQ
_alignmentr\r_rHadd)rrrWrZr[Znew_stoprYrrrmallocs



zHeap.mallocN)r#r$r%rfrrRrstaticmethodrMr\r_r^rbrerhrrrrr<cs

r<c@s1eZdZeZddZddZdS)rcCsDtjj|}||f|_tj|tjjd|fdS)Nargs)r_heaprhrrr0re)rrrYrrrrszBufferWrapper.__init__cCs3|j\\}}}}t|j|||S)N)r
memoryviewr)rrWrZr[rrrrcreate_memoryviewszBufferWrapper.create_memoryviewN)r#r$r%r<rkrrmrrrrrs	)rOrrsysr&r?rrr__all__platformrobjectrr:r7registerr<rrrrr<module>
s$	 
Back to Directory File Manager