U
    dy                     @   s0   d dl Z d dlZG dd dZG dd dZdS )    Nc                   @   s:   e Zd ZdZdZdZdZdddZdddZddd	Z	d
S )
LocalQueuer   unnamedc                 C   s&   g | _ || _tj| _t jd7  _d S N   )itemsnamer   uidselfr    r   H/tmp/pip-unpacked-wheel-ua33x9lu/torch/utils/data/communication/queue.py__init__   s    zLocalQueue.__init__Tc                 C   s,   t  jd7  _t  jd7  _| j| d S r   )r   opsstoredr   appendr
   itemblockr   r   r   put   s    zLocalQueue.putc                 C   sF   t  jd7  _t| js.t  jd7  _tdt  jd8  _| j S )Nr   zLocalQueue is empty)r   r   lenr   empty	Exceptionr   popr
   r   timeoutr   r   r   get   s    
zLocalQueue.getN)r   )T)Tr   )
__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r      s   

r   c                   @   s*   e Zd ZdddZdddZddd	Zd
S )ThreadingQueuer   c                 C   s   t  | _g | _|| _d S N)	threadingLocklockr   r   r	   r   r   r   r   !   s    
zThreadingQueue.__init__Tc              	   C   s"   | j  | j| W 5 Q R X d S r    )r#   r   r   r   r   r   r   r   &   s    zThreadingQueue.putr   c              
   C   sR   | j * t| jdkr,| j W  5 Q R  S W 5 Q R X |sBtdtd q d S )Nr   zNot availablegư>)r#   r   r   r   r   timesleepr   r   r   r   r   *   s     zThreadingQueue.getN)r   )T)Tr   )r   r   r   r   r   r   r   r   r   r   r       s   

r   )r!   r$   r   r   r   r   r   r   <module>   s   