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