Sha256: bc56c5e20589d3cf7e5dc73485fec10015710f5837f0ad5cd9130f24602154e0
Contents?: true
Size: 471 Bytes
Versions: 6
Compression:
Stored size: 471 Bytes
Contents
require 'adrian/queue' module Adrian class ArrayQueue < Queue def initialize(array = []) @array = array.map { |item| wrap_item(item) } @mutex = Mutex.new end def pop @mutex.synchronize { @array.shift } end def push(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
6 entries across 6 versions & 1 rubygems