class ConcurrentWorker::RequestCounter

Public Class Methods

new() click to toggle source
# File lib/concurrent_worker/common.rb, line 6
def initialize
  @count = Queue.new
  @com = Queue.new
end

Public Instance Methods

close() click to toggle source
# File lib/concurrent_worker/common.rb, line 36
def close
  @count.close
end
closed?() click to toggle source
# File lib/concurrent_worker/common.rb, line 40
def closed?
  @count.closed?
end
empty?() click to toggle source
# File lib/concurrent_worker/common.rb, line 28
def empty?
  @count.empty?
end
pop() click to toggle source
# File lib/concurrent_worker/common.rb, line 13
def pop
  Thread.handle_interrupt(Object => :never) do
    r = @count.pop
    @com.push(true)
    r
  end
end
push(args) click to toggle source
# File lib/concurrent_worker/common.rb, line 10
def push(args)
  @count.push(args)
end
size() click to toggle source
# File lib/concurrent_worker/common.rb, line 32
def size
  @count.size
end
wait_until_less_than(n) click to toggle source
# File lib/concurrent_worker/common.rb, line 21
def wait_until_less_than(n)
  return if @count.size < n
  while @com.pop
    break if @count.size < n
  end
end