;
Òâ"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   s…   | |  _  d t j ƒ  t t j ƒ f |  _ t j d |  j  d |  j ƒ|  _ t	 j
 ƒ  d k p t d ƒ ‚ |  j  |  j f |  _ d  S(   Nu	   pym-%d-%diÿÿÿÿu   tagnamei    u   tagname already in use(   u   sizeu   osu   getpidu   nextu   Arenau   _counteru   nameu   mmapu   bufferu   win32u   GetLastErroru   AssertionErroru   _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 ƒ|  _ t j ƒ  t j k p t ‚ d  S(   Niÿÿÿÿu   tagname(	   u   sizeu   nameu   _stateu   mmapu   bufferu   win32u   GetLastErroru   ERROR_ALREADY_EXISTSu   AssertionError(   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   s`   t  j ƒ  |  j k p t ‚ |  j j ƒ  z! |  j j | ƒ |  j | ƒ Wd  |  j j	 ƒ  Xd  S(   N(
   u   osu   getpidu   _lastpidu   AssertionErroru   _locku   acquireu   _allocated_blocksu   removeu   _freeu   release(   u   selfu   block(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   free˜   s    c          
   C   sü   d | k o t  j k  n p t ‚ 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    i   (   u   sysu   maxsizeu   AssertionErroru   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   si   d | k o t  j k  n p t ‚ t j j | ƒ } | | f |  _ t |  t j j d | f ƒd  S(   Ni    u   args(	   u   sysu   maxsizeu   AssertionErroru   BufferWrapperu   _heapu   mallocu   _stateu   Finalizeu   free(   u   selfu   sizeu   block(    (    u1   /mit/python/lib/python3.0/multiprocessing/heap.pyu   __init__¼   s    (c             C   sL   |  j  \ \ } } } } t j | j ƒ \ } } | | k p t ‚ | | S(   N(   u   _stateu   _multiprocessingu   address_of_bufferu   bufferu   AssertionError(   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