fj-"ddlZddlmZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z dgZ ejdkrddlZGdd eZn%Gd d eZd Zd Ze jeeGd deZGddeZdS)N) defaultdict) reductionassert_spawning)util BufferWrapperwin32c@eZdZ ejZdZdZdZdS)Arenact||_tdD]p}dtjt |jfz}t jd||}tjdkrn$| qtd||_ ||_ |j|j f|_ dS)Ndz pym-%d-%stagnamerzCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapi GetLastErrorcloseFileExistsErrornamebuffer_state)selfrirbufs ;/opt/alt/python311/lib64/python3.11/multiprocessing/heap.py__init__zArena.__init__&sDI3ZZ G G"bikk4 3C3C%DDiD$777'))Q..E %&EFFFDIDK9di0DKKKc.t||jSN)rr)rs r" __getstate__zArena.__getstate__5s D ! ! !; r$c~|x\|_|_|_tjd|j|j|_dS)Nrr)rrrrr)rstates r" __setstate__zArena.__setstate__9s716 6 DIty4;)B 49EEEDKKKr$N) __name__ __module__ __qualname__tempfile_RandomNameSequencerr#r'r*r$r"r r s] -,.. 1 1 1    F F F F Fr$r c@eZdZ ejdkrdgZngZddZdZdS)r linuxz/dev/shmrc||_||_|dkrtjdt jz||\|_}t j|tj |tj |jft j |j|tj |j|j|_ dS)Nrzpym-%d-)prefixdir)rfdr.mkstemprr _choose_dirunlinkrFinalizer ftruncaterr)rrr6rs r"r#zArena.__init__MsDIDGRxx!) 0%bikk1))$//!1!1!1  $ dBHtwj999 TWd+++)DGTY77DKKKr$c|jD]-}tj|}|j|jz|kr|cS.t jSr&)_dir_candidatesrstatvfsf_bavailf_frsizer get_temp_dir)rrdsts r"r8zArena._choose_dir[sT)  Z]];,44HHH5$&& &r$N)r)r+r,r-sysplatformr=r#r8r0r$r"r r CsY  <7 " ")lOO O 8 8 8 8 ' ' ' ' 'r$c|jdkrtdt|jt j|jffS)NrzDArena is unpicklable because forking was enabled when it was created)r6 ValueError rebuild_arenarrDupFd)as r" reduce_arenarKdsF 42::GHH Hqvyqt'<'<===r$cFt||Sr&)r detach)rdupfds r"rHrHjsT5<<>>***r$czeZdZdZdZdZejfdZe dZ dZ dZ dZ dZd Zd Zd Zd Zd ZdS)Heapi@ctj|_tj|_||_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)rrs r"r#z Heap.__init__{s  ^%%    "!"-S!1!1 %'! r$c|dz }||z|zS)Nrr0)n alignmentmasks r"_roundupz Heap._roundups1}DTE!!r$c.|t|j|tj}|j|jkr|xjdzc_t jd|t|}|j ||d|fS)Nz"allocating a new mmap of length %dr) rgmaxrXrPAGESIZE_DOUBLE_ARENA_SIZE_UNTILrinfor r_append)rrlengtharenas r" _new_arenazHeap._new_arenass4:t44dmDD :5 5 5 JJ!OJJ 6???f  E"""q&!!r$cT|j}||jkrdS|j|}|j|df=|j||f=|j||j|}||d|f|s$|j|=|j |dSdSrS) r_DISCARD_FREE_SPACE_LARGER_THANr^popr[r\r_removerZrY)rrproblocksseqs r"_discard_arenazHeap._discard_arenas D8 8 8 F'++E22  % ,   0 E"""v& E1f%&&& ) ( M  ( ( ( ( ( ) )r$cHtj|j|}|t|jkr||S|j|}|j|}|}|s|j|=|j|=|\}}}|j||f=|j||f=|Sr&) bisect bisect_leftrYlenrqrZrtr[r\) rrr rorwblockrpstartstops r"_mallocz Heap._mallocs  t}d 3 3 DM"" " "??4(( (]1%F"6*CGGIIE ?$V,dmA.>$t  % 0   . r$c|\}}} |j||f}||\}}n#t$rYnwxYw |j||f}||\}}n#t$rYnwxYw|||f}||z } |j||n5#t$r(|g|j|<t j|j|YnwxYw||j||f<||j||f<dSr&) r\_absorbKeyErrorr[rZrnrzinsortrY) rr}rpr~r prev_block_ next_blockros r"_add_free_blockzHeap._add_free_blocksY$t 0,eU^>>  "5 ) - -ui.@ A A A5), - - - - - - - - - - - - - - - - - -sB0EEEN)r+r,r-rrsrlrrkr# staticmethodrgrqrxrrrrrrrr0r$r"rPrPssJ&3#, M:""\" " " ")))$"333<   '''000%%%8-----r$rPc.eZdZeZdZdZdS)rcX|dkr"td|tj|kr"t d|t j|}||f|_tj |t jj |fdS)Nrrr)args) rGrrDrrr_heaprrrr:r)rrr}s r"r#zBufferWrapper.__init__Fs !886==dCCDD D ;$   6 = =d C CDD D#**400dm  dM/4E8DDDDDDr$c\|j\\}}}}t|j|||zSr&)r memoryviewr)rrpr~rrs r"create_memoryviewzBufferWrapper.create_memoryviewOs3%)["td%,''eDj(899r$N)r+r,r-rPrr#rr0r$r"rrBs@ DFFEEEE:::::r$)rz collectionsrrrrDr.rUcontextrrr__all__rErobjectr rKrHregisterrPrr0r$r"rs ###### ////////   <7NNNFFFFFFFFFH''''''''B>>> +++Iul+++ I-I-I-I-I-6I-I-I-^:::::F:::::r$