Define a thread global variable for the current instance with name name. If the value value is given, it is used to initialize the variable.
# File lib/dslkit/polite.rb, line 130 def instance_thread_global(name, value = nil) sc = class << self extend DSLKit::ThreadGlobal self end sc.thread_global name, value self end
Define a thread global variable named name in this module/class. If the value value is given, it is used to initialize the variable.
# File lib/dslkit/polite.rb, line 106 def thread_global(name, value = nil) is_a?(Module) or raise TypeError, "receiver has to be a Module" name = name.to_s var_name = "@__#{name}_#{__id__.abs}__" lock = Mutex.new modul = self define_method(name) do lock.synchronize { modul.instance_variable_get var_name } end define_method(name + "=") do |value| lock.synchronize { modul.instance_variable_set var_name, value } end modul.instance_variable_set var_name, value if value self end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.