Class: Adrian::ArrayQueue

Inherits:
Queue
  • Object
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

#lengthObject



21
22
23
# File 'lib/adrian/array_queue.rb', line 21

def length
  @mutex.synchronize { @array.size }
end

#pop_itemObject



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