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 BufferWrapperwin32cBeZdZ ejZdZdZdZy)Arenacx||_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__tempfile_RandomNameSequencerr#r'r*r$r"r r s) -,,. 1  Fr$r cFeZdZ ejdk(rdgZngZddZdZy)r 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)rrr6rs 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"r8zArena._choose_dir[sL))ZZ];;,4H*$$& &r$N)r)r+r,r-sysplatformr=r#r8r0r$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)r6 ValueError rebuild_arenarrDupFd)as r" reduce_arenarKdsC 442:GH Hqvvyqtt'<===r$c6t||jSr&)r detach)rdupfds r"rHrHjsT5<<>**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)Nrr0)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) rgmaxrXrPAGESIZE_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|yyrS) r_DISCARD_FREE_SPACE_LARGER_THANr^popr[r\r_removerZrY)rrproblocksseqs 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_leftrYlenrqrZrtr[r\) rrr rorwblockrpstartstops 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[rZrnrzinsortrY) rr}rpr~r prev_block_ next_blockros r"_add_free_blockzHeap._add_free_blocks $t 0,,eU^#t$rYywxYwr&)r`rt 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)rrrTrGformatrWacquirer`rnrbrrrreleasers 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)rGrrDmaxsize OverflowErrorrrrTr#rWrarrgrj _alignmentrrr^add)rrrpr~r 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-rrsrlrrkr# staticmethodrgrqrxrrrrrrrr0r$r"rPrPssbJ&3#, MM:"" ")$"3< '0%8-r$rPc&eZdZeZdZdZy)rcN|dkrtdj|tj|krt dj|t j j|}||f|_tj|t j j|fy)Nrrr)args) rGrrDrrr_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)rrpr~rrs r"create_memoryviewzBufferWrapper.create_memoryviewOs1%)[["td%,,'eDj99r$N)r+r,r-rPrr#rr0r$r"rrBs FEE:r$)rz collectionsrrrrDr.rUcontextrrr__all__rErobjectr rKrHregisterrPrr0r$r"rs# /   <<7FFH''B> +Iul+ I-6I-^:F:r$