class Concurrent::ThreadLocals
@!visibility private @!macro internal_implementation_note An array-backed storage of indexed variables per thread.
Public Instance Methods
locals()
click to toggle source
# File lib/concurrent-ruby/concurrent/atomic/locals.rb, line 142 def locals Thread.current.thread_variable_get(:concurrent_thread_locals) end
locals!()
click to toggle source
# File lib/concurrent-ruby/concurrent/atomic/locals.rb, line 146 def locals! thread = Thread.current locals = thread.thread_variable_get(:concurrent_thread_locals) unless locals locals = thread.thread_variable_set(:concurrent_thread_locals, []) weak_synchronize do @all_arrays[locals.object_id] = locals end # When the thread goes out of scope, we should delete the associated locals: ObjectSpace.define_finalizer(thread, thread_fiber_finalizer(locals.object_id)) end locals end