Instance Methods
#
lib/singleton.rb
View on GitHub
# File tmp/rubies/ruby-3.4.1/lib/singleton.rb, line 204
def instance
set_mutex(Thread::Mutex.new) if Ractor.current[mutex_key].nil?
return Ractor.current[instance_key] if Ractor.current[instance_key]
Ractor.current[mutex_key].synchronize {
return Ractor.current[instance_key] if Ractor.current[instance_key]
set_instance(new())
}
Ractor.current[instance_key]
end
No documentation available
lib/singleton.rb
View on GitHub
# File tmp/rubies/ruby-3.4.1/lib/singleton.rb, line 216
def instance_key
:"__RactorLocalSingleton_instance_with_class_id_#{object_id}__"
end
No documentation available
lib/singleton.rb
View on GitHub
# File tmp/rubies/ruby-3.4.1/lib/singleton.rb, line 220
def mutex_key
:"__RactorLocalSingleton_mutex_with_class_id_#{object_id}__"
end
No documentation available
lib/singleton.rb
View on GitHub
# File tmp/rubies/ruby-3.4.1/lib/singleton.rb, line 224
def set_instance(val)
Ractor.current[instance_key] = val
end
No documentation available
lib/singleton.rb
View on GitHub
# File tmp/rubies/ruby-3.4.1/lib/singleton.rb, line 228
def set_mutex(val)
Ractor.current[mutex_key] = val
end
No documentation available