class MBidle::UniqueQueue

Public Instance Methods

push(*items) click to toggle source
# File lib/mbidle/unique_queue.rb, line 3
def push(*items)
  EM.schedule do
    items.each do |item|
      @sink.push(item) unless @sink.include?(item)
    end
    unless @popq.empty?
      @drain = @sink
      @sink = []
      @popq.shift.call @drain.shift until @drain.empty? || @popq.empty?
    end
  end
end