class AtomicCounter::Counter

Attributes

current[R]

Public Class Methods

new(start = 0) click to toggle source
# File lib/atomic_counter/counter.rb, line 5
def initialize(start = 0)
  @current = start
  @initial = start
  @mutex = Mutex.new
end

Public Instance Methods

decrement(by = 1) click to toggle source
# File lib/atomic_counter/counter.rb, line 17
def decrement(by = 1)
  @mutex.synchronize do
    @current -= by
  end
end
increment(by = 1) click to toggle source
# File lib/atomic_counter/counter.rb, line 11
def increment(by = 1)
  @mutex.synchronize do
    @current += by
  end
end
reset() click to toggle source
# File lib/atomic_counter/counter.rb, line 23
def reset
  @mutex.synchronize do
    local_value = @current
    @current = @initial
    local_value
  end
end