class WSDirector::ClientsHolder

Acts as a re-usable global barrier for a fixed number of clients. Barrier is reset if sucessfully passed in time.

Attributes

barrier[R]

Public Class Methods

new(count) click to toggle source
# File lib/wsdirector/clients_holder.rb, line 7
def initialize(count)
  @barrier = Concurrent::CyclicBarrier.new(count)
end

Public Instance Methods

wait_all() click to toggle source
# File lib/wsdirector/clients_holder.rb, line 11
def wait_all
  result = barrier.wait(WSDirector.config.sync_timeout)
  raise Error, "Timeout (#{WSDirector.config.sync_timeout}s) exceeded for #wait_all" unless
    result
  barrier.reset
  result
end