Issue #6293 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)

Hello,

2012/4/14 tenderlovemaking (Aaron Patterson) <aaron / tenderlovemaking.com>:
> I'd like to add new Queue objects to ruby.

I bet matz does not accept it because there is no good reason.
Why don't you extend the traditional Queue class?


> * include Enumerable

The semantics is not trivial.  See the discussion in #4589.

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #6293: new queue / blocking queues
https://bugs.ruby-lang.org/issues/6293#change-25896

Author: tenderlovemaking (Aaron Patterson)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: 
Target version: 


Hi,

I'd like to add new Queue objects to ruby.  Whenever I use queues, I either use them in a blocking or non-blocking manner only, so I have separated them in to two classes Thread::Queue, and Thread::BlockingQueue.

Other notable differences, these queues:

* implement `poll`, which will return a nil if the queue is empty
* do not allow `nil` to be in the queue as it would interfere with `poll`
* include Enumerable

I think these will be a good basis for implementing a Deque, SynchronizedQueue, and PriorityQueue.

I've attached a patch against trunk.


-- 
http://bugs.ruby-lang.org/