Sha256: 48fdc292a5876973800d7c98f626c8760e95bfb9657a97e9b846101e43681ff1

Contents?: true

Size: 452 Bytes

Versions: 13

Compression:

Stored size: 452 Bytes

Contents

class Kamal::Cli::Healthcheck::Barrier
  def initialize
    @ivar = Concurrent::IVar.new
  end

  def close
    set(false)
  end

  def open
    set(true)
  end

  def wait
    unless opened?
      raise Kamal::Cli::Healthcheck::Error.new("Halted at barrier")
    end
  end

  private
    def opened?
      @ivar.value
    end

    def set(value)
      @ivar.set(value)
      true
    rescue Concurrent::MultipleAssignmentError
      false
    end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
kamal-1.9.2 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.9.1 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.9.0 lib/kamal/cli/healthcheck/barrier.rb
kamal-2.0.0.alpha lib/kamal/cli/healthcheck/barrier.rb
kamal-1.8.3 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.8.2 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.8.1 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.8.0 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.7.3 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.7.2 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.7.1 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.7.0 lib/kamal/cli/healthcheck/barrier.rb
kamal-1.6.0 lib/kamal/cli/healthcheck/barrier.rb