class Spectator::AtomicNumber
Thread safe number operations
Public Class Methods
new(init)
click to toggle source
# File lib/spectator/atomic_number.rb, line 4 def initialize(init) @value = init @lock = Mutex.new end
Public Instance Methods
add_and_get(amount)
click to toggle source
# File lib/spectator/atomic_number.rb, line 33 def add_and_get(amount) @lock.synchronize { @value += amount } end
get()
click to toggle source
# File lib/spectator/atomic_number.rb, line 13 def get @lock.synchronize { @value } end
get_and_add(amount)
click to toggle source
# File lib/spectator/atomic_number.rb, line 25 def get_and_add(amount) @lock.synchronize do tmp = @value @value += amount tmp end end
get_and_set(value)
click to toggle source
# File lib/spectator/atomic_number.rb, line 17 def get_and_set(value) @lock.synchronize do tmp = @value @value = value tmp end end
max(value)
click to toggle source
# File lib/spectator/atomic_number.rb, line 37 def max(value) v = value.to_f @lock.synchronize do @value = v if v > @value || @value.nan? end @value end
set(value)
click to toggle source
# File lib/spectator/atomic_number.rb, line 9 def set(value) @lock.synchronize { @value = value } end
to_s()
click to toggle source
# File lib/spectator/atomic_number.rb, line 45 def to_s "AtomicNumber{#{@value}}" end