Class: Concurrent::ThreadLocalVar
- Inherits:
-
Object
- Object
- Concurrent::ThreadLocalVar
- Defined in:
- lib/concurrent/atomic/thread_local_var.rb
Constant Summary collapse
- NIL_SENTINEL =
Object.new
Constants included from ThreadLocalSymbolAllocator
Concurrent::ThreadLocalSymbolAllocator::COUNTER
Instance Method Summary collapse
-
#initialize(default = nil) ⇒ ThreadLocalVar
constructor
A new instance of ThreadLocalVar.
- #value ⇒ Object
- #value=(value) ⇒ Object
Constructor Details
#initialize(default = nil) ⇒ ThreadLocalVar
Returns a new instance of ThreadLocalVar.
86 87 88 89 |
# File 'lib/concurrent/atomic/thread_local_var.rb', line 86 def initialize(default = nil) @default = default allocate_storage end |
Instance Method Details
#value ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/concurrent/atomic/thread_local_var.rb', line 91 def value value = get if value.nil? @default elsif value == NIL_SENTINEL nil else value end end |
#value=(value) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/concurrent/atomic/thread_local_var.rb', line 103 def value=(value) if value.nil? stored_value = NIL_SENTINEL else stored_value = value end set stored_value value end |