gj-ddlZddlmZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z dgZ ejdk(rddlZGdd eZn$Gd d eZd Zd Ze j(eeGd deZGddeZy)N) defaultdict) reductionassert_spawning)util BufferWrapperwin32cDeZdZdZej ZdZdZdZ y)ArenazL A shared memory area backed by anonymous memory (Windows). cx||_tdD]o}dtjt |j fz}t j d||}tjdk(rn|jqtd||_ ||_ |j|jf|_ y)Ndz pym-%d-%stagnamerzCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapi GetLastErrorcloseFileExistsErrornamebuffer_state)selfrirbufs ;/opt/alt/python312/lib64/python3.12/multiprocessing/heap.py__init__zArena.__init__&sDI3Z"biik4 3C%DDiiD$7'')Q.  &&EFFDIDK99dii0DKc0t||jSN)rr)rs r" __getstate__zArena.__getstate__5s D !;; r$c|x\|_|_|_tjd|j|j|_y)Nrr)rrrrr)rstates r" __setstate__zArena.__setstate__9s316 6 DIty4;))B 499EDKr$N) __name__ __module__ __qualname____doc__tempfile_RandomNameSequencerr#r'r*r$r"r r s) -,,. 1  Fr$r cHeZdZdZej dk(rdgZngZddZdZy)r zJ A shared memory area backed by a temporary file (POSIX). linuxz/dev/shmc||_||_|dk(rtjdt j z|j |\|_}t j|tj|tj|jft j|j|tj|j|j|_ y)Nrzpym-%d-)prefixdir)rfdr/mkstemprr _choose_dirunlinkrFinalizer ftruncaterr)rrr7rs r"r#zArena.__init__MsDIDGRx!) 0 0%biik1))$/!1  $ dBHHtwwj9 TWWd+))DGGTYY7DKr$c|jD]7}tj|}|j|jz|k\s5|cSt j Sr&)_dir_candidatesrstatvfsf_bavailf_frsizer get_temp_dir)rrdsts r"r9zArena._choose_dir[sL))ZZ];;,4H*$$& &r$N)r) r+r,r-r.sysplatformr>r#r9r1r$r"r r Cs+  <<7 ")lO O 8 'r$c|jdk(r tdt|jt j |jffS)NrzDArena is unpicklable because forking was enabled when it was created)r7 ValueError rebuild_arenarrDupFd)as r" reduce_arenarLdsC 442:GH Hqvvyqtt'<===r$c6t||jSr&)r detach)rdupfds r"rIrIjsT5<<>**r$c|eZdZdZdZdZejfdZe dZ dZ dZ dZ dZd Zd Zd Zd Zd Zy)Heapi@ctj|_tj|_||_g|_i|_i|_ i|_ tt|_ g|_g|_d|_d|_yNr)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)rrs r"r#z Heap.__init__{sy  ^^%    "!"-S!1 %'! r$c|dz }||z|zS)Nrr1)n alignmentmasks r"_roundupz Heap._roundups1}DTE!!r$cH|jt|j|tj}|j|j kr|xjdzc_t jd|t|}|jj||d|fS)Nz"allocating a new mmap of length %dr) rhmaxrYrPAGESIZE_DOUBLE_ARENA_SIZE_UNTILrinfor r`append)rrlengtharenas r" _new_arenazHeap._new_arenasys4::t4dmmD ::55 5 JJ!OJ 6?f  E"q&!!r$c|j}||jkry|jj|}|j|df=|j ||f=|j j||j|}|j|d|f|s)|j|=|jj|yyrT) r_DISCARD_FREE_SPACE_LARGER_THANr_popr\r]r`remover[rZ)rrqrpblocksseqs r"_discard_arenazHeap._discard_arenas D88 8 ''++E2  % ,    0 E"v& E1f%&  ( MM  (r$cttj|j|}|t|jk(r|j |S|j|}|j |}|j }|s|j |=|j|=|\}}}|j||f=|j||f=|Sr&) bisect bisect_leftrZlenrrr[rur\r]) rrr rprxblockrqstartstops r"_mallocz Heap._mallocs   t}}d 3 DMM" "??4( (]]1%F""6*CGGIE$$V,dmmA.>$t  % 0    . r$c|\}}} |j||f}|j|\}} |j||f}|j|\}}|||f}||z } |j|j |||j||f<||j||f<y#t$rY}wxYw#t$rYfwxYw#t$r3|g|j|<t j|j|Y|wxYwr&) r]_absorbKeyErrorr\r[ror{insortrZ) rr~rqrr prev_block_ next_blockrps r"_add_free_blockzHeap._add_free_blocks $t 0,,eU^#t$rYywxYwr&)raru IndexErrorrrrr~s r"_free_pending_blockszHeap._free_pending_blockssU 11557   '  ( ( /   sA A  A c$tj|jk7r7tdj tj|j|j j ds|jj|y |xjdz c_ |j|j||j||j jy#|j jwxYw)Nz$My pid ({0:n}) is not last pid {1:n}Fr)rrrUrHformatrXacquirerarorcrrrreleasers r"freez Heap.free s 99;$-- '6==IIK /0 0zz!!%(  % % , ,U 3 % " ))+$$U+,,U3 ""$ ""$s AC33Dc|dkrtdj|tj|krt dj|t j |jk7r|j|j5|xjdz c_ |j|jt|d|j}|j|\}}}||z}||kr|j!|||f|j"|j%||f|||fcdddS#1swYyxYw)NrSize {0:n} out of rangeSize {0:n} too larger)rHrrEmaxsize OverflowErrorrrrUr#rXrbrrhrk _alignmentrrr_add)rrrqrr real_stops r"mallocz Heap.malloc(s !86==dCD D ;;$  6 = =d CD D 99;$-- ' MMO ZZ OOq O  % % '==T1t?D#'<<#5 UE4 I4$$eY%=>  " "5 ) - -ui.@ A5),ZZs B#D77EN)r+r,r-rrtrmrrlr# staticmethodrhrrryrrrrrrrr1r$r"rQrQssbJ&3#, MM:"" ")$"3< '0%8-r$rQc&eZdZeZdZdZy)rcN|dkrtdj|tj|krt dj|t j j|}||f|_tj|t j j|fy)Nrrr)args) rHrrErrr_heaprrrr;r)rrr~s r"r#zBufferWrapper.__init__Fs !86==dCD D ;;$  6 = =d CD D##**40dm  dM//44E8Dr$c^|j\\}}}}t|j|||zSr&)r memoryviewr)rrqrrrs r"create_memoryviewzBufferWrapper.create_memoryviewOs1%)[["td%,,'eDj99r$N)r+r,r-rQrr#rr1r$r"rrBs FEE:r$)r{ collectionsrrrrEr/rVcontextrrr__all__rFrobjectr rLrIregisterrQrr1r$r"rs# /   <<7FFH''B> +Iul+ I-6I-^:F:r$