Class: Quickdraw::Queue
- Inherits:
-
Object
- Object
- Quickdraw::Queue
- Defined in:
- lib/quickdraw/queue.rb
Instance Method Summary collapse
- #<<(item) ⇒ Object
- #drain ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ Queue
constructor
A new instance of Queue.
- #pop ⇒ Object
- #shift ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize ⇒ Queue
Returns a new instance of Queue.
4 5 6 7 |
# File 'lib/quickdraw/queue.rb', line 4 def initialize @array = [] @mutex = Mutex.new end |
Instance Method Details
#<<(item) ⇒ Object
9 10 11 |
# File 'lib/quickdraw/queue.rb', line 9 def <<(item) @mutex.synchronize { @array << item } end |
#drain ⇒ Object
13 14 15 |
# File 'lib/quickdraw/queue.rb', line 13 def drain yield(shift) until empty? end |
#empty? ⇒ Boolean
25 26 27 |
# File 'lib/quickdraw/queue.rb', line 25 def empty? @array.empty? end |
#pop ⇒ Object
17 18 19 |
# File 'lib/quickdraw/queue.rb', line 17 def pop @mutex.synchronize { @array.pop } end |
#shift ⇒ Object
21 22 23 |
# File 'lib/quickdraw/queue.rb', line 21 def shift @mutex.synchronize { @array.shift } end |
#size ⇒ Object
29 30 31 |
# File 'lib/quickdraw/queue.rb', line 29 def size @array.size end |