Sha256: 9de00c2372b5471e374154dc54450c1f276352ccf0cf1467348ea3d3e44b64e9
Contents?: true
Size: 561 Bytes
Versions: 1
Compression:
Stored size: 561 Bytes
Contents
require 'thread' class PriorityQueue def initialize clear end def clear @queues = {} end def [](value) @queues[value] ||= Queue.new end def priorities @queues.keys.sort end def shift priorities.each do |key| if not self[key].empty? return self[key].shift(true) else @queues.delete(key) end end nil end def size @queues.values.inject(0) do |size, queue| size + queue.size end end def empty? @queues.all? {|priority, queue| queue.empty?} end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
priority_queue-0.2.0 | lib/priority_queue.rb |