class Concurrent::TVar

A `TVar` is a transactional variable - a single-element container that is used as part of a transaction - see `Concurrent::atomically`.

@!macro thread_safe_variable_comparison

{include:file:docs-source/tvar.md}

Public Class Methods

new(value) click to toggle source

Create a new `TVar` with an initial value.

# File lib/concurrent-ruby/concurrent/tvar.rb, line 16
def initialize(value)
  @value = value
  @lock = Mutex.new
end

Public Instance Methods

value() click to toggle source

Get the value of a `TVar`.

# File lib/concurrent-ruby/concurrent/tvar.rb, line 22
def value
  Concurrent::atomically do
    Transaction::current.read(self)
  end
end
value=(value) click to toggle source

Set the value of a `TVar`.

# File lib/concurrent-ruby/concurrent/tvar.rb, line 29
def value=(value)
  Concurrent::atomically do
    Transaction::current.write(self, value)
  end
end