%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/multiprocessing/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/multiprocessing/__pycache__/heap.cpython-38.pyc

U

qaj-@sddlZddlmZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZdgZ
ejdkrddlZGdd	d	eZn,Gd
d	d	eZddZd
dZe	eeGdddeZGdddeZdS)N)defaultdict)	reductionassert_spawning)util
BufferWrapperwin32c@s0eZdZdZeZddZddZddZ	dS)	ArenazL
        A shared memory area backed by anonymous memory (Windows).
        cCsx||_tdD]B}dtt|jf}tjd||d}tdkrHqZ|	qt
d||_||_|j|jf|_
dS)Ndz	pym-%d-%sZtagnamerzCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapiZGetLastErrorcloseFileExistsErrornamebuffer_state)selfr
irbufr0/usr/local/lib/python3.8/multiprocessing/heap.py__init__&s
Arena.__init__cCst||jSN)rr)rrrr__getstate__5szArena.__getstate__cCs,|\|_|_|_tjd|j|jd|_dS)Nrr)r
rrrr)rstaterrr__setstate__9szArena.__setstate__N)
__name__
__module____qualname____doc__tempfile_RandomNameSequencerrr"r$rrrrr	s
r	c@s8eZdZdZejdkrdgZngZd
ddZddZd	S)r	zJ
        A shared memory area backed by a temporary file (POSIX).
        linuxz/dev/shmrcCsx||_||_|dkrbtjdt||d\|_}t|t	|tj
|jft|j|t|j|j|_
dS)Nrzpym-%d-)prefixdir)r
fdr)mkstemprr_choose_dirunlinkrFinalizer	ftruncaterr)rr
r.rrrrrMs

r cCs6|jD]&}t|}|j|j|kr|SqtSr!)_dir_candidatesrstatvfsf_bavailf_frsizerget_temp_dir)rr
dstrrrr0[s



zArena._choose_dirN)r)	r%r&r'r(sysplatformr4rr0rrrrr	Cs

cCs(|jdkrtdt|jt|jffS)NrzDArena is unpicklable because forking was enabled when it was created)r.
ValueError
rebuild_arenar
rDupFd)arrrreduce_arenads
rAcCst||Sr!)r	detach)r
Zdupfdrrrr>jsr>c@szeZdZdZdZdZejfddZe	ddZ
ddZd	d
ZddZ
d
dZddZddZddZddZddZdS)Heapi@cCsXt|_t|_||_g|_i|_i|_	i|_
tt|_
g|_g|_d|_d|_dSNr)rr_lastpid	threadingLock_lock_size_lengths_len_to_seq_start_to_block_stop_to_blockrset_allocated_blocks_arenas_pending_free_blocks
_n_mallocs_n_frees)rr
rrrr{s


z
Heap.__init__cCs|d}|||@S)Nrr)nZ	alignmentmaskrrr_roundupsz
Heap._roundupcCsZ|t|j|tj}|j|jkr0|jd9_td|t|}|j	
||d|fS)Nz"allocating a new mmap of length %dr)rWmaxrJrPAGESIZE_DOUBLE_ARENA_SIZE_UNTILrinfor	rQappend)rr
lengtharenarrr
_new_arenaszHeap._new_arenacCs|j}||jkrdS|j|}|r(t|j|df=|j||f=|j||j	|}||d|f|s~|j	|=|j
|dSrE)r
_DISCARD_FREE_SPACE_LARGER_THANrPpopAssertionErrorrMrNrQremoverLrK)rr_r^blocksseqrrr_discard_arenas

zHeap._discard_arenac	Cs|t|j|}|t|jkr&||S|j|}|j|}|}|sV|j|=|j|=|\}}}|j||f=|j||f=|Sr!)	bisectbisect_leftrKlenr`rLrbrMrN)	rr
rr^rfblockr_startstoprrr_mallocs



zHeap._mallocc	Cs|\}}}z|j||f}Wntk
r0YnX||\}}z|j||f}Wntk
rfYnX||\}}|||f}||}z|j||Wn.tk
r|g|j|<t|j|YnX||j||f<||j||f<dSr!)	rNKeyError_absorbrMrLr]rhinsortrK)	rrkr_rlrmZ
prev_block_Z
next_blockr^rrr_add_free_blocks(

zHeap._add_free_blockcCs^|\}}}|j||f=|j||f=||}|j|}|||sV|j|=|j|||fSr!)rMrNrLrdrK)rrkr_rlrmr^rfrrrrps


zHeap._absorbcCs4|\}}}|j|}|||f|s0||dSr!)rPrdrg)rrkr_rlrmrerrr_remove_allocated_blocks


zHeap._remove_allocated_blockcCsBz|j}Wntk
r&Yq>YnX||||qdSr!)rRrb
IndexErrorrsrtrrkrrr_free_pending_blockss

zHeap._free_pending_blockscCs~t|jkr$tdt|j|jds>|j|n<z.|j
d7_
||||
|W5|j	XdS)Nz$My pid ({0:n}) is not last pid {1:n}Fr)rrrFr=formatrIacquirerRr]releaserTrwrsrtrvrrrfrees

z	Heap.freec
Cs|dkrtd|tj|kr.td|t|jkrD||j	|j
d7_
||t
|d|j}||\}}}||}||kr||||f|j|||f|||fW5QRSQRXdS)NrSize {0:n} out of rangeSize {0:n} too larger)r=rxr;maxsize
OverflowErrorrrrFrrIrSrwrWrY
_alignmentrnrsrPadd)rr
r_rlrmZ	real_stoprrrmalloc(s 
zHeap.mallocN)r%r&r'rrar[rrZrstaticmethodrWr`rgrnrsrprtrwr{rrrrrrCss

rCc@s"eZdZeZddZddZdS)rcCs^|dkrtd|tj|kr.td|tj|}||f|_t	j
|tjj|fddS)Nrr|r})args)r=rxr;r~rr_heaprrrr2r{)rr
rkrrrrFs

zBufferWrapper.__init__cCs&|j\\}}}}t|j|||Sr!)r
memoryviewr)rr_rlrmr
rrrcreate_memoryviewOszBufferWrapper.create_memoryviewN)r%r&r'rCrrrrrrrrBs	)rhcollectionsrrrr;r)rGcontextrrr__all__r<robjectr	rAr>registerrCrrrrr<module>
s&
$!P

Zerion Mini Shell 1.0