Class: Adrian::ArrayQueue
- Inherits:
-
Queue
- Object
- Queue
- Adrian::ArrayQueue
show all
- Defined in:
- lib/adrian/array_queue.rb
Instance Method Summary
collapse
Methods inherited from Queue
#max_age, #pop, #push, #verify_age!
Constructor Details
#initialize(array = [], options = {}) ⇒ ArrayQueue
Returns a new instance of ArrayQueue.
5
6
7
8
9
|
# File 'lib/adrian/array_queue.rb', line 5
def initialize(array = [], options = {})
super(options)
@array = array.map { |item| wrap_item(item) }
@mutex = Mutex.new
end
|
Instance Method Details
#length ⇒ Object
21
22
23
|
# File 'lib/adrian/array_queue.rb', line 21
def length
@mutex.synchronize { @array.size }
end
|
#pop_item ⇒ Object
11
12
13
|
# File 'lib/adrian/array_queue.rb', line 11
def pop_item
@mutex.synchronize { @array.shift }
end
|
#push_item(item) ⇒ Object
15
16
17
18
19
|
# File 'lib/adrian/array_queue.rb', line 15
def push_item(item)
item = wrap_item(item)
@mutex.synchronize { @array << item }
self
end
|