advanced/threads_keep_their_class_variables_no_parens.rb
tests/_examples/advanced/threads_keep_their_class_variables_no_parens.rb in the metorex repository.
class Worker
@@label = "worker"
def work
$in_work = true
until $stop
end
@@label
end
end
class Reader
@@label = "reader"
def read
Thread.pass until $in_work
label = @@label
$stop = true
label
end
end
worker = Thread.new { Worker.new.work }
p Reader.new.read
p worker.value
Output:
"reader"
"worker"