???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
]L"                 @   s   y d  d l  Z  Wn e k
 r0 d  d l Z  Yn Xd  d l m Z d  d l m Z m Z d  d l m	 Z d d d d d	 g Z
 Gd
 d   d e  Z Gd d   d e  Z Gd d   d  Z Gd d   d e  Z Gd d	   d	 e  Z d S)    N)deque)heappushheappop)	monotonicEmptyFullQueuePriorityQueue	LifoQueuec               @   s   e  Z d  Z d S)r   N)__name__
__module____qualname__ r   r   */opt/alt/python35/lib64/python3.5/queue.pyr      s   c               @   s   e  Z d  Z d S)r   N)r   r   r   r   r   r   r   r      s   c               @   s   e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d d d  Z	 d d d d  Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d S) r   r   c             C   sq   | |  _  |  j |  t j   |  _ t j |  j  |  _ t j |  j  |  _ t j |  j  |  _ d |  _	 d  S)Nr   )
maxsize_init	threadingLockmutex	Condition	not_emptynot_fullall_tasks_doneunfinished_tasks)selfr   r   r   r   __init__   s    	zQueue.__init__c          	   C   s\   |  j  L |  j d } | d k rH | d k  r; t d   |  j  j   | |  _ Wd  QRXd  S)N   r   z!task_done() called too many times)r   r   
ValueError
notify_all)r   
unfinishedr   r   r   	task_done2   s    
zQueue.task_donec          	   C   s2   |  j  " x |  j r& |  j  j   q WWd  QRXd  S)N)r   r   wait)r   r   r   r   joinH   s    	
z
Queue.joinc          	   C   s   |  j   |  j   SWd  QRXd  S)N)r   _qsize)r   r   r   r   qsizeU   s    
zQueue.qsizec          	   C   s    |  j   |  j   SWd  QRXd  S)N)r   r#   )r   r   r   r   emptyZ   s    
zQueue.emptyc          
   C   s6   |  j  & d |  j k  o( |  j   k SSWd  QRXd  S)Nr   )r   r   r#   )r   r   r   r   fullh   s    
z
Queue.fullTNc          
   C   s  |  j  |  j d k r | s= |  j   |  j k r t  n | d  k ru x |  j   |  j k rq |  j  j   qL Wns | d k  r t d   nX t   | } xH |  j   |  j k r | t   } | d k r t  |  j  j |  q W|  j |  |  j d 7_ |  j	 j
   Wd  QRXd  S)Nr   z''timeout' must be a non-negative numberg        r   )r   r   r#   r   r!   r   time_putr   r   notify)r   itemblocktimeoutendtime	remainingr   r   r   puts   s&    
	z	Queue.putc          	   C   s   |  j   | s% |  j   s t  n | d  k rT x |  j   sP |  j  j   q4 Wnj | d k  ro t d   nO t   | } x? |  j   s | t   } | d k r t  |  j  j |  q W|  j   } |  j j   | SWd  QRXd  S)Nr   z''timeout' must be a non-negative numberg        )	r   r#   r   r!   r   r'   _getr   r)   )r   r+   r,   r-   r.   r*   r   r   r   get   s$    
	z	Queue.getc             C   s   |  j  | d d S)Nr+   F)r/   )r   r*   r   r   r   
put_nowait   s    zQueue.put_nowaitc             C   s   |  j  d d  S)Nr+   F)r1   )r   r   r   r   
get_nowait   s    zQueue.get_nowaitc             C   s   t    |  _ d  S)N)r   queue)r   r   r   r   r   r      s    zQueue._initc             C   s   t  |  j  S)N)lenr4   )r   r   r   r   r#      s    zQueue._qsizec             C   s   |  j  j |  d  S)N)r4   append)r   r*   r   r   r   r(      s    z
Queue._putc             C   s   |  j  j   S)N)r4   popleft)r   r   r   r   r0      s    z
Queue._get)r   r   r   r   r    r"   r$   r%   r&   r/   r1   r2   r3   r   r#   r(   r0   r   r   r   r   r      s    c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
r	   c             C   s   g  |  _  d  S)N)r4   )r   r   r   r   r   r      s    zPriorityQueue._initc             C   s   t  |  j  S)N)r5   r4   )r   r   r   r   r#      s    zPriorityQueue._qsizec             C   s   t  |  j |  d  S)N)r   r4   )r   r*   r   r   r   r(      s    zPriorityQueue._putc             C   s   t  |  j  S)N)r   r4   )r   r   r   r   r0      s    zPriorityQueue._getN)r   r   r   r   r#   r(   r0   r   r   r   r   r	      s   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
r
   c             C   s   g  |  _  d  S)N)r4   )r   r   r   r   r   r      s    zLifoQueue._initc             C   s   t  |  j  S)N)r5   r4   )r   r   r   r   r#      s    zLifoQueue._qsizec             C   s   |  j  j |  d  S)N)r4   r6   )r   r*   r   r   r   r(      s    zLifoQueue._putc             C   s   |  j  j   S)N)r4   pop)r   r   r   r   r0      s    zLifoQueue._getN)r   r   r   r   r#   r(   r0   r   r   r   r   r
      s   )r   ImportErrordummy_threadingcollectionsr   heapqr   r   r'   r   __all__	Exceptionr   r   r   r	   r
   r   r   r   r   <module>   s   