class PromisePool::Queue
Attributes
condv[R]
queue[R]
Public Class Methods
new()
click to toggle source
# File lib/promise_pool/queue.rb, line 6 def initialize @queue = [] @condv = ConditionVariable.new end
Public Instance Methods
<<(task)
click to toggle source
# File lib/promise_pool/queue.rb, line 15 def << task queue << task condv.signal end
clear()
click to toggle source
# File lib/promise_pool/queue.rb, line 29 def clear queue.clear end
pop(mutex, timeout=60)
click to toggle source
# File lib/promise_pool/queue.rb, line 20 def pop mutex, timeout=60 if queue.empty? condv.wait(mutex, timeout) queue.shift || lambda{ |_| false } # shutdown idle workers else queue.shift end end
size()
click to toggle source
# File lib/promise_pool/queue.rb, line 11 def size @queue.size end