Method: Concurrent::ThreadLocalVar#initialize

Defined in:
lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb

#initialize(default = nil, &default_block) ⇒ ThreadLocalVar

Creates a thread local variable.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb', line 51

def initialize(default = nil, &default_block)
  if default && block_given?
    raise ArgumentError, "Cannot use both value and block as default value"
  end

  if block_given?
    @default_block = default_block
    @default = nil
  else
    @default_block = nil
    @default = default
  end

  @index = LOCALS.next_index(self)
end