U if\, @ s d dl Z d dlmZ d dlmZmZ d dlmZ zd dlm Z W n e k rX dZ Y nX dddd d dgZzd dlmZ W n$ e k r G d d de ZY nX G dd de ZG dd dZG dd d eZG dd d eZG dd dZe dkreZ dS ) N)deque)heappushheappop) monotonic)SimpleQueueEmptyFullQueue PriorityQueue LifoQueuer )r c @ s e Zd ZdS )r N__name__ __module____qualname__ r r */opt/alt/python38/lib64/python3.8/queue.pyr s c @ s e Zd ZdS )r Nr r r r r r s c @ s e Zd Zd ddZdd Zdd Zdd Zd d Zdd Zd!ddZ d"ddZ dd Zdd Zdd Z dd Zdd Zdd ZdS )#r r c C sN || _ | | t | _t| j| _t| j| _t| j| _d| _ d S Nr ) maxsize_init threadingZLockmutexZ Condition not_emptynot_fullall_tasks_doneunfinished_tasksselfr r r r __init__! s zQueue.__init__c C sH | j 8 | jd }|dkr4|dk r*td| j || _W 5 Q R X d S )N r z!task_done() called too many times)r r ValueErrorZ notify_all)r Z unfinishedr r r task_done8 s zQueue.task_donec C s( | j | jr| j qW 5 Q R X d S N)r r waitr r r r joinN s z Queue.joinc C s&