class Supervision::Atomic
A class responsible for creating threadsafe value objects
Public Class Methods
new(value = nil)
click to toggle source
Initialize an Atomic
instance
@param [Numeric] value
@api public
# File lib/supervision/atomic.rb, line 12 def initialize(value = nil) @mutex = Mutex.new @value = value end
Public Instance Methods
get()
click to toggle source
Retrieve value
@api public
# File lib/supervision/atomic.rb, line 20 def get @mutex.synchronize { @value } end
Also aliased as: value
set(new_value)
click to toggle source
Set value
@api public
# File lib/supervision/atomic.rb, line 28 def set(new_value) @mutex.synchronize { @value = new_value} end
Also aliased as: value=
update() { |get| ... }
click to toggle source
Update value
@api public
# File lib/supervision/atomic.rb, line 36 def update set(new_value = yield(get)) if block_given? new_value end