File: //proc/self/root/opt/alt/python311/lib64/python3.11/__pycache__/queue.cpython-311.opt-1.pyc
�
    !A?h�,  �                   �J  � d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z 	 ddl
mZ n
# e$ r dZY nw xY wg d�Z
	 ddl
mZ n# e$ r  G d	� d
e�  �        ZY nw xY w G d� de�  �        Z G d
� d�  �        Z G d� de�  �        Z G d� de�  �        Z G d� d�  �        Ze�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__� �    �,/opt/alt/python311/lib64/python3.11/queue.pyr   r      s   � � � � � �>�>��r   r   c                   �   � e Zd ZdZdS )r	   z4Exception raised by Queue.put(block=0)/put_nowait().Nr   r   r   r   r	   r	      s   � � � � � �:�:��Dr   r	   c                   �   � e Zd ZdZdd�Zd� Zd� Zd� Zd� Zd� Z	dd�Z
dd�Zd
� Zd� Z
d� Zd� Zd� Zd� Z eej        �  �        Zd
S )r
   zjCreate a queue object with a given maximum size.
    If maxsize is <= 0, the queue size is infinite.
    r   c                 �0  � || _         | �                    |�  �         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   s     r   �__init__zQueue.__init__"