File: //lib/python3.10/__pycache__/queue.cpython-310.pyc
o
    E�h�,  �                   @   s   d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z zddl
mZ W n ey1   dZY nw g d�Z
zddl
mZ W n eyO   G d	d
� d
e�ZY nw G dd� de�ZG d
d� d�ZG dd� de�ZG dd� de�ZG dd� d�Zedu r~eZdS dS )z'A multi-producer, multi-consumer queue.�    N)�deque)�heappush�heappop)�	monotonic)�SimpleQueue)�Empty�Full�Queue�
PriorityQueue�	LifoQueuer   )r   c                   @   �   e Zd ZdZdS )r   z4Exception raised by Queue.get(block=0)/get_nowait().N��__name__�
__module__�__qualname__�__doc__� r   r   �/usr/lib/python3.10/queue.pyr      �    r   c                   @   r   )r   z4Exception raised by Queue.put(block=0)/put_nowait().Nr
   r   r   r   r   r      r   r   c                   @   s�   e Zd ZdZd!dd�Zdd� Zdd� Zd	d
� Zdd� Zd
d� Z	d"dd�Z
d"dd�Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd � Zeej�ZdS )#r	   zjCreate a queue object with a given maximum size.
    If maxsize is <= 0, the queue size is infinite.
    r   c                 C   sN   || _ | �|� t�� | _t�| j�| _t�| j�| _t�| 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__"