method
close
v2_6_3 -
Show latest stable
- Class:
Queue
close()public
Closes the queue. A closed queue cannot be re-opened.
After the call to close completes, the following are true:
-
closed? will return true
-
close will be ignored.
-
calling enq/push/<< will raise a ClosedQueueError.
-
when empty? is false, calling deq/pop/shift will return an object from the queue as usual.
-
when empty? is true, deq(false) will not suspend the thread and will return nil. deq(true) will raise a ThreadError.
ClosedQueueError is inherited from StopIteration, so that you can break loop block.
Example: q = Queue.new Thread.new{ while e = q.deq # wait for nil to break loop # ... end } q.close