509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \  ã               @   s´   d ddddg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dlmZ G dd„ de	ƒZ
G dd„ de	ƒZG dd „ d ƒZG dd„ deƒZG dd„ deƒZejs°eZe jdƒ dS )ÚQueueÚPriorityQueueÚ	LifoQueueÚ	QueueFullÚ
QueueEmptyé    Né   )Úcompat)Úevents)Úlocks)Ú	coroutinec               @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú&/usr/lib64/python3.6/asyncio/queues.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œdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zedd„ ƒZdd„ Zdd„ Zedd„ ƒZdd„ Zed d!„ ƒZd"d#„ Zd$d%„ Zed&d'„ ƒZdS ))r   r   N)Úloopc            C   sb   |d krt jƒ | _n|| _|| _tjƒ | _tjƒ | _d| _t	j
| jd�| _| jjƒ  | j|ƒ d S )Nr   )r   )r	   Zget_event_loopÚ_loopÚ_maxsizeÚcollectionsÚdequeÚ_gettersÚ_puttersÚ_unfinished_tasksr
   ZEventÚ	_finishedÚsetÚ_init)ÚselfÚmaxsizer   r   r   r   Ú__init__(   s    


zQueue.__init__c             C   s   t jƒ | _d S )N)r   r   Ú_queue)r   r   r   r   r   r   :   s    zQueue._initc             C   s
   | j jƒ S )N)r   Úpopleft)r   r   r   r   Ú_get=   s    z
Queue._getc             C   s   | j j|ƒ d S )N)r   Úappend)r   Úitemr   r   r   Ú_put@   s    z
Queue._putc             C   s*   x$|r$|j ƒ }|jƒ s|jd ƒ P qW d S )N)r    ÚdoneZ
set_result)r   ÚwaitersZwaiterr   r   r   Ú_wakeup_nextE   s
    
zQueue._wakeup_nextc             C   s   dj t| ƒjt| ƒ| jƒ ƒS )Nz<{} at {:#x} {}>)ÚformatÚtyper   ÚidÚ_format)r   r   r   r   Ú__repr__M   s    zQueue.__repr__c             C   s   dj t| ƒj| jƒ ƒS )Nz<{} {}>)r(   r)   r   r+   )r   r   r   r   Ú__str__Q   s    zQueue.__str__c             C   sz   dj | jƒ}t| dd ƒr,|dj t| jƒƒ7 }| jrF|dj t| jƒƒ7 }| jr`|dj t| jƒƒ7 }| jrv|dj | jƒ7 }|S )Nzmaxsize={!r}r   z _queue={!r}z _getters[{}]z _putters[{}]z	 tasks={})	r(   r   ÚgetattrÚlistr   r   Úlenr   r   )r   Úresultr   r   r   r+   T   s    zQueue._formatc             C   s
   t | jƒS )N)r0   r   )r   r   r   r   Úqsize`   s    zQueue.qsizec             C   s   | j S )N)r   )r   r   r   r   r   d   s    zQueue.maxsizec             C   s   | j  S )N)r   )r   r   r   r   Úemptyi   s    zQueue.emptyc             C   s    | j dkrdS | jƒ | j kS d S )Nr   F)r   r2   )r   r   r   r   Úfullm   s    
z
Queue.fullc          	   c   st   xh| j ƒ rh| jjƒ }| jj|ƒ y|E d H  W q   |jƒ  | j ƒ  r^|jƒ  r^| j| jƒ ‚ Y qX qW | j|ƒS )N)	r4   r   Úcreate_futurer   r"   ÚcancelÚ	cancelledr'   Ú
put_nowait)r   r#   Zputterr   r   r   Úputx   s    	

z	Queue.putc             C   s>   | j ƒ rt‚| j|ƒ |  jd7  _| jjƒ  | j| jƒ d S )Nr   )r4   r   r$   r   r   Úclearr'   r   )r   r#   r   r   r   r8   �   s    

zQueue.put_nowaitc             c   s˜   xŽ| j ƒ rŽ| jjƒ }| jj|ƒ y|E d H  W q   |jƒ  y| jj|ƒ W n tk
rb   Y nX | j ƒ  r„|jƒ  r„| j	| jƒ ‚ Y qX qW | j
ƒ S )N)r3   r   r5   r   r"   r6   ÚremoveÚ
ValueErrorr7   r'   Ú
get_nowait)r   Úgetterr   r   r   Úget›   s    

z	Queue.getc             C   s$   | j ƒ rt‚| jƒ }| j| jƒ |S )N)r3   r   r!   r'   r   )r   r#   r   r   r   r=   ·   s
    zQueue.get_nowaitc             C   s8   | j dkrtdƒ‚|  j d8  _ | j dkr4| jjƒ  d S )Nr   z!task_done() called too many timesr   )r   r<   r   r   )r   r   r   r   Ú	task_doneÂ   s
    

zQueue.task_donec             c   s   | j dkr| jjƒ E d H  d S )Nr   )r   r   Úwait)r   r   r   r   ÚjoinÖ   s    	
z
Queue.join)r   )r   r   r   r   r   r!   r$   r'   r,   r-   r+   r2   Úpropertyr   r3   r4   r   r9   r8   r?   r=   r@   rB   r   r   r   r   r      s$   c               @   s0   e Zd Zdd„ Zejfdd„Zejfdd„ZdS )r   c             C   s
   g | _ d S )N)r   )r   r   r   r   r   r   é   s    zPriorityQueue._initc             C   s   || j |ƒ d S )N)r   )r   r#   Úheappushr   r   r   r$   ì   s    zPriorityQueue._putc             C   s
   || j ƒS )N)r   )r   Úheappopr   r   r   r!   ï   s    zPriorityQueue._getN)	r   r   r   r   ÚheapqrD   r$   rE   r!   r   r   r   r   r   ã   s   c               @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r   c             C   s
   g | _ d S )N)r   )r   r   r   r   r   r   ö   s    zLifoQueue._initc             C   s   | j j|ƒ d S )N)r   r"   )r   r#   r   r   r   r$   ù   s    zLifoQueue._putc             C   s
   | j jƒ S )N)r   Úpop)r   r   r   r   r!   ü   s    zLifoQueue._getN)r   r   r   r   r$   r!   r   r   r   r   r   ó   s   ÚJoinableQueue)Ú__all__r   rF   Ú r   r	   r
   Z
coroutinesr   Ú	Exceptionr   r   r   r   r   ZPY35rH   r"   r   r   r   r   Ú<module>   s    H