Ñò
˜à"Ic           @   s5  d  d g Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l	 Z	 l
 Z
 d d k Z d d k l Z d d k l Z l Z l Z l Z d d k l Z l Z l Z l Z d d k l Z d  e f d	 „  ƒ  YZ e ƒ  Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   t   Queuet   SimpleQueueiÿÿÿÿN(   t   Emptyt   Full(   t   Pipe(   t   Lockt   BoundedSemaphoret	   Semaphoret	   Condition(   t   debugt   infot   Finalizet   register_after_fork(   t   assert_spawningc           B   sË   e  Z d  d „ Z d „  Z d „  Z d „  Z e d d „ Z e d d „ Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   i    c         C   sÆ   | d j o t  i i } n | |  _ t d t ƒ \ |  _ |  _ t ƒ  |  _	 t
 i ƒ  |  _ t i d j o d  |  _ n t ƒ  |  _ t | ƒ |  _ |  i ƒ  t i d j o t |  t i ƒ n d  S(   Ni    t   duplext   win32(   t   _multiprocessingt   SemLockt   SEM_VALUE_MAXt   _maxsizeR   t   Falset   _readert   _writerR   t   _rlockt   ost   getpidt   _opidt   syst   platformt   Nonet   _wlockR   t   _semt   _after_forkR   R    (   t   selft   maxsize(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   __init__    s    	
c         C   s8   t  |  ƒ |  i |  i |  i |  i |  i |  i |  i f S(   N(   R   R   R   R   R   R   R   R   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   __getstate__2   s    
c         C   s>   | \ |  _  |  _ |  _ |  _ |  _ |  _ |  _ |  i ƒ  d  S(   N(   R   R   R   R   R   R   R   R    (   R!   t   state(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   __setstate__7   s    0c         C   s   t  d ƒ t i t i ƒ  ƒ |  _ t i ƒ  |  _ d  |  _	 d  |  _
 t |  _ t |  _ d  |  _ |  i i |  _ |  i i |  _ |  i i |  _ d  S(   Ns   Queue._after_fork()(   R	   t	   threadingR   R   t	   _notemptyt   collectionst   dequet   _bufferR   t   _threadt   _jointhreadR   t   _joincancelledt   _closedt   _closeR   t   sendt   _sendR   t   recvt   _recvt   pollt   _poll(   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR    <   s    
					c         C   s   |  i  i | | ƒ p
 t ‚ n |  i i ƒ  z? |  i d  j o |  i ƒ  n |  i i | ƒ |  i i	 ƒ  Wd  |  i i
 ƒ  Xd  S(   N(   R   t   acquireR   R(   R,   R   t   _start_threadR+   t   appendt   notifyt   release(   R!   t   objt   blockt   timeout(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   putI   s    
c         C   sú   | oP | d  j oC |  i i ƒ  z! |  i ƒ  } |  i i ƒ  | SWd  |  i i ƒ  Xn  | o t i ƒ  | } n |  i i | | ƒ p
 t ‚ n zS |  i | o | t i ƒ  p d ƒ p
 t ‚ n |  i ƒ  } |  i i ƒ  | SWd  |  i i ƒ  Xd  S(   Ng        (	   R   R   R7   R4   R   R;   t   timeR   R6   (   R!   R=   R>   t   rest   deadline(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   getW   s$    
(
c         C   s   |  i  |  i i i ƒ  S(   N(   R   R   t   _semlockt
   _get_value(   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   qsizeo   s    c         C   s   |  i  ƒ  S(   N(   R6   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   emptys   s    c         C   s   |  i  i i ƒ  S(   N(   R   RD   t   _is_zero(   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   fullv   s    c         C   s   |  i  t ƒ S(   N(   RC   R   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt
   get_nowaity   s    c         C   s   |  i  | t ƒ S(   N(   R?   R   (   R!   R<   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt
   put_nowait|   s    c         C   s2   t  |  _ |  i i ƒ  |  i o |  i ƒ  n d  S(   N(   t   TrueR/   R   t   closeR0   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyRM      s    	
c         C   s&   t  d ƒ |  i o |  i ƒ  n d  S(   Ns   Queue.join_thread()(   R	   R-   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   join_thread…   s    

c         C   s>   t  d ƒ t |  _ y |  i i ƒ  Wn t j
 o n Xd  S(   Ns   Queue.cancel_join_thread()(   R	   RL   R.   R-   t   cancelt   AttributeError(   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   cancel_join_thread‹   s    
	c      	   C   s  t  d ƒ |  i i ƒ  t i d t i d |  i |  i |  i |  i	 |  i
 i f d d ƒ |  _ t |  i _ t  d ƒ |  i i ƒ  t  d ƒ |  i t i ƒ  j } |  i o< | o4 t |  i t i t i |  i ƒ g d d	 ƒ|  _ n t |  t i |  i |  i g d d
 ƒ|  _ d  S(   Ns   Queue._start_thread()t   targett   argst   namet   QueueFeederThreads   doing self._thread.start()s   ... done self._thread.start()t   exitpriorityiûÿÿÿi
   (   R	   R+   t   clearR'   t   ThreadR    t   _feedR(   R2   R   R   RM   R,   RL   t   daemont   startR   R   R   R.   R   t   _finalize_joint   weakreft   refR-   t   _finalize_closeR0   (   R!   t   created_by_this_process(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR8   “   s*    
		

	c         C   sF   t  d ƒ |  ƒ  } | d  j	 o | i ƒ  t  d ƒ n t  d ƒ d  S(   Ns   joining queue threads   ... queue thread joineds   ... queue thread already dead(   R	   R   t   join(   t   twrt   thread(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR\   ¹   s    
	
c         C   sA   t  d ƒ | i ƒ  z |  i t ƒ | i ƒ  Wd  | i ƒ  Xd  S(   Ns   telling queue thread to quit(   R	   R7   R9   t	   _sentinelR:   R;   (   t   buffert   notempty(    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR_   Ã   s    

c         C   s  t  d ƒ d d k l } | i } | i } | i } |  i }	 t }
 t i	 d j o | i } | i } n d  } y¹ x² | ƒ  z |  p | ƒ  n Wd  | ƒ  Xyq xj |	 ƒ  } | |
 j o t  d ƒ | ƒ  d  S| d  j o | | ƒ q¤ | ƒ  z | | ƒ Wd  | ƒ  Xq¤ Wqv t j
 o qv Xqv Wn` t j
 oT } y5 | ƒ  o t d | ƒ n d d  k } | i ƒ  WqŒt j
 o qŒXn Xd  S(   Ns$   starting thread to feed data to pipei   (   t
   is_exitingR   s%   feeder thread got sentinel -- exitings   error in queue thread: %siÿÿÿÿ(   R	   t   utilRg   R7   R;   t   waitt   popleftRd   R   R   R   t
   IndexErrort	   ExceptionR
   t	   tracebackt	   print_exc(   Re   Rf   R1   t	   writelockRM   Rg   t   nacquiret   nreleaset   nwaitt   bpopleftt   sentinelt   wacquiret   wreleaseR<   t   eRm   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyRY   Í   sR    
						

N(   t   __name__t
   __module__R#   R$   R&   R    RL   R   R?   RC   RF   RG   RI   RJ   RK   RM   RN   RQ   R8   t   staticmethodR\   R_   RY   (    (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR       s$   												&

t   JoinableQueuec           B   sG   e  Z d  d „ Z d „  Z d „  Z e d d „ Z d „  Z d „  Z	 RS(   i    c         C   s/   t  i |  | ƒ t d ƒ |  _ t ƒ  |  _ d  S(   Ni    (   R    R#   R   t   _unfinished_tasksR   t   _cond(   R!   R"   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR#     s    c         C   s   t  i |  ƒ |  i |  i f S(   N(   R    R$   R}   R|   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR$     s    c         C   s.   t  i |  | d  ƒ | d \ |  _ |  _ d  S(   Niþÿÿÿ(   R    R&   R}   R|   (   R!   R%   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR&     s    c         C   s'   t  i |  | | | ƒ |  i i ƒ  d  S(   N(   R    R?   R|   R;   (   R!   t   itemR=   R>   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR?     s    c         C   sm   |  i  i ƒ  zK |  i i t ƒ p t d ƒ ‚ n |  i i i ƒ  o |  i  i ƒ  n Wd  |  i  i ƒ  Xd  S(   Ns!   task_done() called too many times(	   R}   R7   R|   R   t
   ValueErrorRD   RH   t
   notify_allR;   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt	   task_done!  s    c         C   sJ   |  i  i ƒ  z( |  i i i ƒ  p |  i  i ƒ  n Wd  |  i  i ƒ  Xd  S(   N(   R}   R7   R|   RD   RH   Ri   R;   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyRa   +  s
    N(
   Rx   Ry   R#   R$   R&   RL   R   R?   R   Ra   (    (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR{     s   			
c           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s^   t  d t ƒ \ |  _ |  _ t ƒ  |  _ t i d j o d  |  _	 n t ƒ  |  _	 |  i
 ƒ  d  S(   NR   R   (   R   R   R   R   R   R   R   R   R   R   t   _make_methods(   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR#   9  s    c         C   s   |  i  i ƒ  S(   N(   R   R5   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyRG   B  s    c         C   s&   t  |  ƒ |  i |  i |  i |  i f S(   N(   R   R   R   R   R   (   R!   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR$   E  s    
c         C   s,   | \ |  _  |  _ |  _ |  _ |  i ƒ  d  S(   N(   R   R   R   R   R‚   (   R!   R%   (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR&   I  s    c            s­   |  i  i ‰ |  i i |  i i ‰ ‰ ‡ ‡ ‡ f d †  } | |  _ |  i d  j o |  i i	 |  _
 nD |  i i	 ‰ |  i i |  i i ‰  ‰ ‡  ‡ ‡ f d †  } | |  _
 d  S(   Nc              s!   ˆ  ƒ  z ˆ ƒ  SWd  ˆ ƒ  Xd  S(   N(    (    (   t   racquireR3   t   rrelease(    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyRC   P  s    c            s$   ˆ  ƒ  z ˆ |  ƒ SWd  ˆ ƒ  Xd  S(   N(    (   R<   (   Ru   Rv   R1   (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR?   ^  s    (   R   R3   R   R7   R;   RC   R   R   R   R1   R?   (   R!   RC   R?   (    (   Ru   Rƒ   R1   Rv   R3   R„   s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR‚   M  s    	(   Rx   Ry   R#   RG   R$   R&   R‚   (    (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyR   7  s
   					(   t   __all__R   R   R'   R)   R@   t   atexitR]   R    R   R   R   t   multiprocessingR   t   multiprocessing.synchronizeR   R   R   R   t   multiprocessing.utilR	   R
   R   R   t   multiprocessing.forkingR   t   objectRd   R{   R   (    (    (    s3   /mit/python/lib/python2.6/multiprocessing/queues.pyt   <module>	   s"   ""ç	
(