Sha256: 98f195f1e992d2b7f5958ee877428ee2b6fa9b00b5d5ebee68b66cdd6c547c40

Contents?: true

Size: 592 Bytes

Versions: 4

Compression:

Stored size: 592 Bytes

Contents

require "cabin/namespace"
require "thread"

class Cabin::Metrics::Counter
  # A new Counter. 
  #
  # Counters can be incremented and decremented only by 1 at a time..
  public
  def initialize
    @value = 0
    @lock = Mutex.new
  end # def initialize

  # increment this counter
  def incr
    @lock.synchronize { @value += 1 }
  end # def incr

  # decrement this counter
  def decr
    @lock.synchronize { @value -= 1 }
  end # def decr

  # Get the value of this metric.
  public
  def value
    return @lock.synchronize { @value }
  end # def value
end # class Cabin::Metrics::Counter

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cabin-0.3.0 lib/cabin/metrics/counter.rb
cabin-0.2.3 lib/cabin/metrics/counter.rb
cabin-0.2.2 lib/cabin/metrics/counter.rb
cabin-0.2.1 lib/cabin/metrics/counter.rb