From: normalperson@... Date: 2015-05-06T20:53:10+00:00 Subject: [ruby-core:69081] [Ruby trunk - Feature #11122] [Open] exception-free non-blocking Queue/SizedQueue operations Issue #11122 has been reported by Eric Wong. ---------------------------------------- Feature #11122: exception-free non-blocking Queue/SizedQueue operations https://bugs.ruby-lang.org/issues/11122 * Author: Eric Wong * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto ---------------------------------------- I would like to reduce exceptions for non-blocking operations on Queue/SizedQueue in the same way we are reducing exceptions for non-blocking I/O with *_nonblock(..., exception: false) methods. However, I'm unclear what the API would be, since queues return Ruby objects instead of String buffers or number of bytes written, so any special object/symbol we would return could conflict with existing applications. Perhaps something like: queue.pop(nonblock: :WAIT) queue.push(obj, nonblock: :WAIT) Which would allow user to specify which object to raise when a queue is empty or full (similar to Timeout.timeout allowing specific exception to raise). -- https://bugs.ruby-lang.org/