class SplitIoClient::Engine::StatusManager

def initialize(config)

def initialize(config)
  @config = config
  @sdk_ready = Concurrent::CountDownLatch.new(1)
end

def ready!

def ready!
  return if ready?
  @sdk_ready.count_down
  @config.logger.info('SplitIO SDK is ready')
end

def ready?

def ready?
  return true if @config.consumer?
  @sdk_ready.wait(0)
end

def wait_until_ready(seconds = nil)

def wait_until_ready(seconds = nil)
  return if @config.consumer?
  timeout = seconds || @config.block_until_ready
  raise SDKBlockerTimeoutExpiredException, 'SDK start up timeout expired' unless @sdk_ready.wait(timeout)
end