;
Ňâ"Ic               @   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 Z d  d l Z d  d l m	 Z	 m
 Z
 d  d l m Z d g Z e j d k o' d d l m Z Gd   d	 e  Z n Gd
   d	 e  Z Gd   d e  Z Gd   d e  Z d S(   i    N(   u   Finalizeu   info(   u   assert_spawningu   BufferWrapperu   win32i   (   u   win32c             B   s5   |  Ee  Z e j   Z d    Z d   Z d   Z d S(   c             C   se   | |  _  d t j   t t j  f |  _ t j d |  j  d |  j |  _ |  j  |  j f |  _	 d  S(   Nu	   pym-%d-%di˙˙˙˙u   tagname(
   u   sizeu   osu   getpidu   nextu   Arenau   _counteru   nameu   mmapu   bufferu   _state(   u   selfu   size(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __init__#   s    	"!c             C   s   t  |   |  j S(   N(   u   assert_spawningu   _state(   u   self(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __getstate__*   s    
c             C   s>   | \ |  _  |  _ |  _ t j d |  j  d |  j |  _ d  S(   Ni˙˙˙˙u   tagname(   u   sizeu   nameu   _stateu   mmapu   buffer(   u   selfu   state(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __setstate__.   s    !N(   u   __name__u
   __module__u	   itertoolsu   countu   _counteru   __init__u   __getstate__u   __setstate__(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   Arena   s   
		u   Arenac             B   s   |  Ee  Z d    Z d S(   c             C   s+   t  j  d |  |  _ | |  _ d  |  _ d  S(   Ni˙˙˙˙(   u   mmapu   bufferu   sizeu   Noneu   name(   u   selfu   size(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __init__7   s    	N(   u   __name__u
   __module__u   __init__(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   Arena5   s   
c             B   s_   |  Ee  Z d  Z e j d  Z e d    Z d   Z d   Z	 d   Z
 d   Z d   Z d S(	   i   c             C   sd   t  j   |  _ t j   |  _ | |  _ g  |  _ i  |  _ i  |  _	 i  |  _
 t   |  _ g  |  _ d  S(   N(   u   osu   getpidu   _lastpidu	   threadingu   Locku   _locku   _sizeu   _lengthsu   _len_to_sequ   _start_to_blocku   _stop_to_blocku   setu   _allocated_blocksu   _arenas(   u   selfu   size(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __init__D   s    					c             C   s   | d } |  | | @S(   Ni   (    (   u   nu	   alignmentu   mask(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   _roundupO   s    
c       	      C   s
  t  j |  j |  } | t |  j  k og |  j t |  j |  t j  } |  j d 9_ t	 d |  t
 |  } |  j j |  | d | f S|  j | } |  j | } | j   } | p |  j | =|  j | =n | \ } } } |  j | | f =|  j | | f =| S(   Ni   u"   allocating a new mmap of length %di    (   u   bisectu   bisect_leftu   _lengthsu   lenu   _roundupu   maxu   _sizeu   mmapu   PAGESIZEu   infou   Arenau   _arenasu   appendu   _len_to_sequ   popu   _start_to_blocku   _stop_to_block(	   u   selfu   sizeu   iu   lengthu   arenau   sequ   blocku   startu   stop(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   _mallocU   s"    !c       	      C   s*  | \ } } } y |  j  | | f } Wn t k
 o Yn X|  j |  \ } } y |  j | | f } Wn t k
 o Yn X|  j |  \ } } | | | f } | | } y |  j | j |  Wn7 t k
 o+ | g |  j | <t j |  j |  Yn X| |  j | | f <| |  j  | | f <d  S(   N(	   u   _stop_to_blocku   KeyErroru   _absorbu   _start_to_blocku   _len_to_sequ   appendu   bisectu   insortu   _lengths(	   u   selfu   blocku   arenau   startu   stopu
   prev_blocku   _u
   next_blocku   length(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   _freek   s(    
c             C   s   | \ } } } |  j  | | f =|  j | | f =| | } |  j | } | j |  | p |  j | =|  j j |  n | | f S(   N(   u   _start_to_blocku   _stop_to_blocku   _len_to_sequ   removeu   _lengths(   u   selfu   blocku   arenau   startu   stopu   lengthu   seq(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   _absorb   s    

c             C   sC   |  j  j   z! |  j j |  |  j |  Wd  |  j  j   Xd  S(   N(   u   _locku   acquireu   _allocated_blocksu   removeu   _freeu   release(   u   selfu   block(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   free   s
    c          
   C   sÔ   t  j   |  j k o |  j   n |  j j   z |  j t | d  |  j  } |  j	 |  \ } } } | | } | | k  o |  j
 | | | f  n | | | f } |  j j |  | SWd  |  j j   Xd  S(   Ni   (   u   osu   getpidu   _lastpidu   __init__u   _locku   acquireu   _roundupu   maxu
   _alignmentu   _mallocu   _freeu   _allocated_blocksu   addu   release(   u   selfu   sizeu   arenau   startu   stopu   new_stopu   block(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   malloc˘   s    
N(   u   __name__u
   __module__u
   _alignmentu   mmapu   PAGESIZEu   __init__u   staticmethodu   _roundupu   _mallocu   _freeu   _absorbu   freeu   malloc(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   Heap@   s   
				
u   Heapc             B   s2   |  Ee  Z e   Z d    Z d   Z d   Z d S(   c             C   sA   t  j j |  } | | f |  _ t |  t  j j d | f d  S(   Nu   args(   u   BufferWrapperu   _heapu   mallocu   _stateu   Finalizeu   free(   u   selfu   sizeu   block(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __init__ź   s    c             C   s8   |  j  \ \ } } } } t j | j  \ } } | | S(   N(   u   _stateu   _multiprocessingu   address_of_bufferu   buffer(   u   selfu   arenau   startu   stopu   sizeu   addressu   length(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   get_addressÂ   s    c             C   s   |  j  d S(   Ni   (   u   _state(   u   self(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   get_sizeČ   s    N(   u   __name__u
   __module__u   Heapu   _heapu   __init__u   get_addressu   get_size(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   BufferWrapper¸   s   
			(   u   bisectu   mmapu   tempfileu   osu   sysu	   threadingu	   itertoolsu   _multiprocessingu   multiprocessing.utilu   Finalizeu   infou   multiprocessing.forkingu   assert_spawningu   __all__u   platformu   win32u   objectu   Arenau   Heapu   BufferWrapper(    (    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   <module>	   s    	x