Add a shutdown method to queue class (threading queue, multiprocessing, asyncio) which causes all future puts to raise (a queue.QueueShutdown) and all future gets once the queue is empty to also raise, unblocking all waiters. An optional argument immediate=True will skip the requirement for the queue to be empty.
This will enable producers and consumers to use the queue to know when to stop. This is important because both producers and consumers can be blocked waiting on the queue.
EpicWink commentedSep 1, 2022
Add a
shutdown
method to queue class (threadingqueue
,multiprocessing
,asyncio
) which causes all future puts to raise (aqueue.QueueShutdown
) and all future gets once the queue is empty to also raise, unblocking all waiters. An optional argumentimmediate=True
will skip the requirement for the queue to be empty.This will enable producers and consumers to use the queue to know when to stop. This is important because both producers and consumers can be blocked waiting on the queue.
Previous discussion:
The text was updated successfully, but these errors were encountered: