Sha256: 9b81606d17e9043e1b7426e3aa7bdac4b713292fea595ab58192899282c9ff33
Contents?: true
Size: 744 Bytes
Versions: 4
Compression:
Stored size: 744 Bytes
Contents
module Msgr class TestPool def initialize(*) @mutex = Mutex.new @queue = [] end def post(*args, &block) @mutex.synchronize { @queue << [block, args] } end def run(timeout: 5, count: 1) Timeout.timeout(timeout) do while count > 0 @mutex.synchronize do if (item = @queue.pop) item[0].call(*item[1]) count -= 1 end end end end end def reset @queue.clear end class << self def new(*args) @instance ||= super(*args) end def run(*args) new.run(*args) end def reset @instance ? @instance.reset : nil end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
msgr-0.14.1.1.b111 | lib/msgr/test_pool.rb |
msgr-0.14.1.1.b110 | lib/msgr/test_pool.rb |
msgr-0.14.1 | lib/msgr/test_pool.rb |
msgr-0.14.0 | lib/msgr/test_pool.rb |