<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

Yf                  @   s#  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 g Z
 e j d k r d  d l Z Gd d	   d	 e  Z n> Gd
 d	   d	 e  Z d d   Z d d   Z e j e e  Gd d   d e  Z Gd d   d e  Z d S)    N   )context)	reduction)utilBufferWrapperwin32c               @   s@   e  Z d  Z e j   Z d d   Z d d   Z d d   Z d S)Arenac             C   s   | |  _  xt t d  D]Z } d t j   t |  j  f } t j d | d | } t j   d k rf P| j	   q Wt
 d   | |  _ | |  _ |  j  |  j f |  _ d  S)Nd   z	pym-%d-%sr   tagnamer   zCannot find name for new mmap)sizerangeosgetpidnext_randmmap_winapiZGetLastErrorcloseFileExistsErrornamebuffer_state)selfr   ir   Zbuf r   9/opt/alt/python35/lib64/python3.5/multiprocessing/heap.py__init__#   s    			zArena.__init__c             C   s   t  j |   |  j S)N)r   Zassert_spawningr   )r   r   r   r   __getstate__2   s    zArena.__getstate__c             C   s>   | \ |  _  |  _ |  _ t j d |  j  d |  j |  _ d  S)Nr   r
   r   )r   r   r   r   r   )r   stater   r   r   __setstate__6   s    zArena.__setstate__N)	__name__
__module____qualname__tempfileZ_RandomNameSequencer   r   r   r    r   r   r   r   r      s   r   c               @   s   e  Z d  Z d d d  Z d S)r   r   c             C   s-  | |  _  | |  _ | d
 k rt j d d t j   d t j    \ |  _ } t j |  t j	 |  t j
 |  j f  t |  j d d d { } d } | | k r d	 | } x% t | |  D] } | j |  q W~ | j d	 | |  | j   | k st  Wd  QRXt j |  j |  j   |  _ d  S)Nr   prefixzpym-%d-dirwbclosefdFi   s    r   i   )r   fdr$   Zmkstempr   r   r   Zget_temp_dirunlinkFinalizer   openr   writetellAssertionErrorr   r   )r   r   r)   r   fZbsZzeros_r   r   r   r   A   s"    			(
zArena.__init__Nr   )r!   r"   r#   r   r   r   r   r   r   ?   s   c             C   s:   |  j  d k r t d   t |  j t j |  j   f f S)Nr   zDArena is unpicklable because forking was enabled when it was createdr   )r)   
ValueErrorrebuild_arenar   r   ZDupFd)ar   r   r   reduce_arenaT   s    r5   c             C   s   t  |  | j    S)N)r   detach)r   Zdupfdr   r   r   r3   Z   s    r3   c               @   s   e  Z d  Z d Z e j d d  Z e d d    Z d d   Z	 d d	   Z
 d
 d   Z d d   Z d d   Z d d   Z d S)Heap   c             C   sm   t  j   |  _ t j   |  _ | |  _ g  |  _ i  |  _ i  |  _	 i  |  _
 t   |  _ g  |  _ g  |  _ d  S)N)r   r   _lastpid	threadingZLock_lock_size_lengths_len_to_seq_start_to_block_stop_to_blockset_allocated_blocks_arenas_pending_free_blocks)r   r   r   r   r   r   g   s    						zHeap.__init__c             C   s   | d } |  | | @S)Nr   r   )nZ	alignmentmaskr   r   r   _roundupt   s    
zHeap._roundupc       	      C   s  t  j |  j |  } | t |  j  k r |  j t |  j |  t j  } |  j d 9_ t	 j
 d |  t |  } |  j j |  | d | f S|  j | } |  j | } | j   } | s |  j | =|  j | =| \ } } } |  j | | f =|  j | | f =| S)N   z"allocating a new mmap of length %dr   )bisectZbisect_leftr=   lenrG   maxr<   r   PAGESIZEr   infor   rC   appendr>   popr?   r@   )	r   r   r   lengtharenaseqblockstartstopr   r   r   _mallocz   s"    !zHeap._mallocc       	      C   s$  | \ } } } y |  j  | | f } Wn t k
 r: Yn X|  j |  \ } } y |  j | | f } Wn t k
 r{ Yn X|  j |  \ } } | | | f } | | } y |  j | j |  Wn5 t k
 r | g |  j | <t j |  j |  Yn X| |  j | | f <| |  j  | | f <d  S)N)	r@   KeyError_absorbr?   r>   rN   rI   Zinsortr=   )	r   rS   rQ   rT   rU   Z
prev_blockr1   Z
next_blockrP   r   r   r   _free   s(    
z
Heap._freec             C   s}   | \ } } } |  j  | | f =|  j | | f =| | } |  j | } | j |  | ss |  j | =|  j j |  | | f S)N)r?   r@   r>   remover=   )r   rS   rQ   rT   rU   rP   rR   r   r   r   rX      s    

zHeap._absorbc             C   sQ   xJ y |  j  j   } Wn t k
 r+ PYn X|  j j |  |  j |  q Wd  S)N)rD   rO   
IndexErrorrB   rZ   rY   )r   rS   r   r   r   _free_pending_blocks   s    zHeap._free_pending_blocksc          
   C   s   t  j   |  j k s t  |  j j d  s@ |  j j |  n< z+ |  j   |  j	 j
 |  |  j |  Wd  |  j j   Xd  S)NF)r   r   r9   r/   r;   acquirerD   rN   r\   rB   rZ   rY   release)r   rS   r   r   r   free   s    

z	Heap.freec             C   s   d | k o t  j k  n s% t  t j   |  j k rD |  j   |  j  |  j   |  j	 t
 | d  |  j  } |  j |  \ } } } | | } | | k  r |  j | | | f  | | | f } |  j j |  | SWd  QRXd  S)Nr   r   )sysmaxsizer/   r   r   r9   r   r;   r\   rG   rK   
_alignmentrV   rY   rB   add)r   r   rQ   rT   rU   Znew_stoprS   r   r   r   malloc   s    %



zHeap.mallocN)r!   r"   r#   rb   r   rL   r   staticmethodrG   rV   rY   rX   r\   r_   rd   r   r   r   r   r7   c   s   
r7   c               @   s1   e  Z d  Z e   Z d d   Z d d   Z d S)r   c             C   si   d | k o t  j k  n s% t  t j j |  } | | f |  _ t j |  t j j	 d | f d  S)Nr   args)
r`   ra   r/   r   _heaprd   r   r   r+   r_   )r   r   rS   r   r   r   r      s    %zBufferWrapper.__init__c             C   s3   |  j  \ \ } } } } t | j  | | |  S)N)r   
memoryviewr   )r   rQ   rT   rU   r   r   r   r   create_memoryview   s    zBufferWrapper.create_memoryviewN)r!   r"   r#   r7   rg   r   ri   r   r   r   r   r      s   	)rI   r   r   r`   r$   r:    r   r   r   __all__platformr   objectr   r5   r3   registerr7   r   r   r   r   r   <module>
   s$   	 