o
    c(                     @   s.   d dl Z d dlZd dlmZ G dd dZdS )    N)dequec                   @   s6   e Zd Zdd ZdddZdd Zdd	 Zd
d ZdS )DelayedQueuec                 C   s0   || _ t | _t| j| _t | _d| _d S )NF)		delay_sec	threadingLock_lock	Condition
_not_emptyr   _queue_closed)selfdelay r   `G:\Development\the-witcher-3-mod-manager\.venv\lib\site-packages\watchdog\utils\delayed_queue.py__init__   s
   

zDelayedQueue.__init__Fc                 C   s:   	 | j   | j|t |f | j  | j   d S N)r   acquirer
   appendtimer	   notifyrelease)r   elementr   r   r   r   put   s
   

zDelayedQueue.putc                 C   s*   	 d| _ | j  | j  | j  d S )NT)r   r	   r   r   r   )r   r   r   r   close&   s
   

zDelayedQueue.closec                 C   s  	 	 | j   t| jdkr | js | j   t| jdkr | jr| jr*| j   d S | jd \}}}| j   |rX|| j t  }|dkrXt	| || j t  }|dksF| j
& t| jdkrz| jd d |u rz| j  |W  d    S W d    n1 sw   Y  q)NTr   )r	   r   lenr
   r   waitr   r   r   sleepr   popleft)r   headZinsert_timer   Z	time_leftr   r   r   get.   s2   




 
 zDelayedQueue.getc                 C   sn   	 | j ) t| jD ]\}\}}}||r$| j|= |  W  d    S q
W d    d S 1 s0w   Y  d S r   )r   	enumerater
   )r   	predicateielemtr   r   r   r   removeK   s   
zDelayedQueue.removeN)F)__name__
__module____qualname__r   r   r   r   r%   r   r   r   r   r      s    
r   )r   r   collectionsr   r   r   r   r   r   <module>   s   