method
close
v2_4_6 -
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 return nil.
-
when empty? is false, calling deq/pop/shift will return an object from the queue as usual.
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