Class: Simple::Queue
- Inherits:
-
Object
- Object
- Simple::Queue
- Defined in:
- lib/simple/queue.rb,
lib/simple/queue/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Instance Method Summary collapse
- #clear ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ Queue
constructor
A new instance of Queue.
- #length ⇒ Object (also: #size)
- #num_waiting ⇒ Object
- #pop(_ = nil) ⇒ Object (also: #deq, #shift)
- #push(obj) ⇒ Object (also: #<<, #enq)
Constructor Details
#initialize ⇒ Queue
5 6 7 8 |
# File 'lib/simple/queue.rb', line 5 def initialize @array = [] @mutex = Mutex.new end |
Instance Method Details
#clear ⇒ Object
10 11 12 |
# File 'lib/simple/queue.rb', line 10 def clear @mutex.synchronize { @array = [] } end |
#empty? ⇒ Boolean
14 15 16 |
# File 'lib/simple/queue.rb', line 14 def empty? @mutex.synchronize { @array.empty? } end |
#length ⇒ Object Also known as: size
18 19 20 |
# File 'lib/simple/queue.rb', line 18 def length @mutex.synchronize { @array.length } end |
#num_waiting ⇒ Object
35 36 37 |
# File 'lib/simple/queue.rb', line 35 def num_waiting 0 end |
#pop(_ = nil) ⇒ Object Also known as: deq, shift
29 30 31 |
# File 'lib/simple/queue.rb', line 29 def pop(_=nil) @mutex.synchronize { @array.shift } end |
#push(obj) ⇒ Object Also known as: <<, enq
23 24 25 |
# File 'lib/simple/queue.rb', line 23 def push(obj) @mutex.synchronize { @array.push(obj) } end |