Sha256: 72b7d6065559b22393a91a10a550c2a25fc3bf75d7d9986db60593f2ba96d908
Contents?: true
Size: 524 Bytes
Versions: 3
Compression:
Stored size: 524 Bytes
Contents
require 'adrian/queue' module Adrian class ArrayQueue < Adrian::Queue def initialize(array = [], options = {}) super(options) @array = array.map { |item| wrap_item(item) } @mutex = Mutex.new end def pop_item @mutex.synchronize { @array.shift } end def push_item(item) item = wrap_item(item) @mutex.synchronize { @array << item } self end protected def wrap_item(item) item.is_a?(QueueItem) ? item : QueueItem.new(item) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
adrian-1.3.3 | lib/adrian/array_queue.rb |
adrian-1.3.2 | lib/adrian/array_queue.rb |
adrian-1.3.1 | lib/adrian/array_queue.rb |