class SmartCore::Engine::Atom
@api public @since 0.7.0
Public Class Methods
new(initial_value = nil)
click to toggle source
@param initial_value [Any] @return [void]
@api private @since 0.7.0
# File lib/smart_core/engine/atom.rb, line 11 def initialize(initial_value = nil) @value = initial_value @barrier = SmartCore::Engine::Lock.new end
Public Instance Methods
swap() { |value| ... }
click to toggle source
@param block [Block] @return [Any]
@api public @since 0.7.0
# File lib/smart_core/engine/atom.rb, line 29 def swap(&block) with_barrier { @value = yield(@value) } end
value()
click to toggle source
@return [Any]
@api public @since 0.7.0
# File lib/smart_core/engine/atom.rb, line 20 def value with_barrier { @value } end
Private Instance Methods
with_barrier(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/engine/atom.rb, line 40 def with_barrier(&block) @barrier.synchronize(&block) end