"Poisons" the queue so that no more items can be pushed or popped.
as poisoned. If any threads are currently
pop() waiting on
*this then they are woken, and will
Any subsequent calls of
*this will throw a
Poisoning is an irreversible operation.
can be called concurrently with
try_pop() without any external synchronization.