
     h$                     d   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	ddl
mZ ddl
mZ ddl
mZ ddlmZmZ dgZej        d          d	k    Zej        d
k    r G d de          Zn% G d de          Zd Zd Z ej        ee            G d de          Z G d de          ZdS )    )absolute_importN   )context)	reduction)util)	_billiardwin32BufferWrapper   r	   c                   >    e Zd Z ej                    Zd Zd Zd ZdS )Arenac                    || _         t          d          D ]p}dt          j                    t	          | j                  fz  }t          j        d||          }t          j                    dk    r n7|	                                 qt          d          }t          j        |_        ||| _        || _        | j         | j        f| _        d S )Nd   z	pym-%d-%stagnamer   zCannot find name for new mmap)sizerangeosgetpidnext_randmmapr	   GetLastErrorcloseIOErrorerrnoEEXISTnamebuffer_state)selfr   ir   bufexcs         I/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/billiard/heap.py__init__zArena.__init__(   s    DI3ZZ 
 
"bikk4
3C3C%DDiD$777%''1,,E		=>>!L		DIDK9di0DKKK    c                 8    t          j        |            | j        S N)r   assert_spawningr!   r"   s    r&   __getstate__zArena.__getstate__9   s    #D)));r(   c                 ~    |x\  | _         | _        | _        t          j        d| j         | j                  | _        d S )Nr   r   )r   r   r!   r   r    )r"   states     r&   __setstate__zArena.__setstate__=   s7    166 DIty4;)B	49EEEDKKKr(   N)	__name__
__module____qualname__tempfile_RandomNameSequencer   r'   r-   r0    r(   r&   r   r   $   sV        ,,..	1 	1 	1"	 	 		F 	F 	F 	F 	Fr(   r   c                       e Zd ZddZdS )r   r   c                 h   || _         || _        |dk    rt          r!t          j        dt          j                    fz  t          j                              \  | _        }t          j	        |           t          j
        | t
          j        | j        f           t          j        | j        dd          5 }d}||k    r0d|z  }t          ||z            D ]}|                    |           ~|                    d||z  z             |                                |k    sJ 	 d d d            n# 1 swxY w Y   nt          j        dt          j                    fz  t          j                              }t          j        |t
          j        t
          j        z  t
          j        z  d	          | _        t          j
        | t
          j        | j        f           t          j	        |           t          j        | j        |           t-          j        | j        | j                   | _        d S )
Nr   zpym-%d-)prefixdirwbF)closefdi       i  )r   fdPY3r4   mkstempr   r   r   get_temp_dirunlinkFinalizer   ioopenr   writetellmktempO_RDWRO_CREATO_EXCL	ftruncater   r    )r"   r   r>   r   fbszeros_s           r&   r'   zArena.__init__H   s$   DIDGRxx 0$,$4(BIKK>9 -//% % %MDGT
 IdOOOM$47*===$>>> 0!(2::$)BJE%*42:%6%6 / / ! % 3444 vvxx4/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $?(BIKK>9 -//  D !gbi"*4ry@% DG M$47*===IdOOOL$///)DGTY77DKKKs   8A.D33D7:D7N)r   )r1   r2   r3   r'   r6   r(   r&   r   r   F   s(         	8  	8  	8  	8  	8  	8r(   c                     | j         dk    rt          d          t          | j        t	          j        | j                   ffS )Nr   zCArena is unpicklable becauseforking was enabled when it was created)r>   
ValueErrorrebuild_arenar   r   DupFd)as    r&   reduce_arenarV   j   sF    42:: G H H Hqvyqt'<'<===r(   c                 F    t          | |                                          S r*   )r   detach)r   dupfds     r&   rS   rS   p   s    T5<<>>***r(   c                   `    e Zd ZdZej        fdZed             Zd Z	d Z
d Zd Zd Zd	 Zd
S )Heap   c                     t          j                    | _        t          j                    | _        || _        g | _        i | _        i | _	        i | _
        t                      | _        g | _        g | _        d S r*   )r   r   _lastpid	threadingLock_lock_size_lengths_len_to_seq_start_to_block_stop_to_blockset_allocated_blocks_arenas_pending_free_blocks)r"   r   s     r&   r'   zHeap.__init__~   se    	^%%

! !$$&!!!r(   c                     |dz
  }| |z   | z  S Nr   r6   )n	alignmentmasks      r&   _roundupzHeap._roundup   s     1}DTE!!r(   c                 *   t          j        | j        |          }|t          | j                  k    r|                     t          | j        |          t          j                  }| xj        dz  c_        t          j
        d|           t          |          }| j                            |           |d|fS | j        |         }| j        |         }|                                }|s| j        |= | j        |= |\  }}}| j        ||f= | j        ||f= |S )N   z"allocating a new mmap of length %dr   )bisectbisect_leftrc   lenrp   maxrb   r   PAGESIZEr   infor   ri   appendrd   popre   rf   )	r"   r   r#   lengtharenaseqblockstartstops	            r&   _malloczHeap._malloc   s   t}d33DM""""]]3tz4#8#8$-HHFJJ!OJJI:FCCC&MMEL&&&1f%%]1%F"6*CGGIIE ?$V,dmA.>$t %0.r(   c                    |\  }}}	 | j         ||f         }|                     |          \  }}n# t          $ r Y nw xY w	 | j        ||f         }|                     |          \  }}n# t          $ r Y nw xY w|||f}||z
  }	 | j        |                             |           n5# t          $ r( |g| j        |<   t          j        | j        |           Y nw xY w|| j        ||f<   || j         ||f<   d S r*   )	rf   _absorbKeyErrorre   rd   ry   rs   insortrc   )	r"   r~   r|   r   r   
prev_blockrP   
next_blockr{   s	            r&   _freez
Heap._free   sY   $t	0,eU^<J ||J//HE11  	 	 	D	
	/-udm<J ll:..GAtt  	 	 	D	
 t$	1V$++E2222 	1 	1 	1(-wDV$M$-00000	1 05eU^,-2UDM***s0   0 
==A) )
A65A6 B% %/CCc                     |\  }}}| j         ||f= | j        ||f= ||z
  }| j        |         }|                    |           |s"| j        |= | j                            |           ||fS r*   )re   rf   rd   removerc   )r"   r~   r|   r   r   r{   r}   s          r&   r   zHeap._absorb   s    $t %0.v&

5 	) (M  (((d{r(   c                     	 	 | j                                         }n# t          $ r Y d S w xY w| j                            |           |                     |           \r*   )rj   rz   
IndexErrorrh   r   r   r"   r~   s     r&   _free_pending_blockszHeap._free_pending_blocks   sr    	15577   "))%000JJu	s    
++c                    t          j                    | j        k    sJ | j                            d          s| j                            |           d S 	 |                                  | j        	                    |           | 
                    |           | j                                         d S # | j                                         w xY w)NF)r   r   r^   ra   acquirerj   ry   r   rh   r   r   releaser   s     r&   freez	Heap.free   s     y{{dm++++z!!%(( 	% %,,U33333%))+++&--e444

5!!!
""$$$$$
""$$$$s   AB4 4Cc                    d|cxk    rt           j        k     sn J t          j                    | j        k    r|                                  | j        5  |                                  |                     t          |d          | j
                  }|                     |          \  }}}||z   }||k     r|                     |||f           |||f}| j                            |           |cd d d            S # 1 swxY w Y   d S )Nr   r   )sysmaxsizer   r   r^   r'   ra   r   rp   rv   
_alignmentr   r   rh   add)r"   r   r|   r   r   new_stopr~   s          r&   malloczHeap.malloc   sM   D&&&&3;&&&&&&9;;$-''MMOOOZ 		 		%%'''==T1t??D#'<<#5#5 UE4t|H$

E8T2333E8,E"&&u---		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   BC::C>C>N)r1   r2   r3   r   r   rw   r'   staticmethodrp   r   r   r   r   r   r   r6   r(   r&   r[   r[   z   s        J M ' ' ' ' " " \"
  ,3 3 3<    % % %2    r(   r[   c                   :    e Zd Z e            Zd Zd Zd Zd ZdS )r
   c                     d|cxk    rt           j        k     sn J t          j                            |          }||f| _        t          j        | t          j        j        |f           d S )Nr   )args)	r   r   r
   _heapr   r!   r   rC   r   )r"   r   r~   s      r&   r'   zBufferWrapper.__init__  so    D&&&&3;&&&&&&#**400dmdM/4E8DDDDDDr(   c                 p    | j         \  \  }}}}t          j        |j                  \  }}||k    sJ ||z   S r*   )r!   r   address_of_bufferr    )r"   r|   r   r   r   addressr{   s          r&   get_addresszBufferWrapper.get_address  sB    %)["td#5elCCv~~~~r(   c                     | j         d         S rl   )r!   r,   s    r&   get_sizezBufferWrapper.get_size  s    {1~r(   c                 \    | j         \  \  }}}}t          |j                  |||z            S r*   )r!   
memoryviewr    )r"   r|   r   r   r   s        r&   create_memoryviewzBufferWrapper.create_memoryview  s3    %)["td%,''edl(:;;r(   N)	r1   r2   r3   r[   r   r'   r   r   r   r6   r(   r&   r
   r
     s^        DFFEE E E    < < < < <r(   )
__future__r   rs   r   rD   r   r   r   r_   r4    r   r   r   _extr   r	   __all__version_infor?   platformobjectr   rV   rS   registerr[   r
   r6   r(   r&   <module>r      s   ' & & & & &   				  				 



                        " " " " " " " "
	qQ <7F F F F F F F F FD"8 "8 "8 "8 "8 "8 "8 "8H> > >+ + + Iul+++K K K K K6 K K Kd< < < < <F < < < < <r(   