inheritable-thread-vars gem

Thread variables are specific to their threads but perhaps you might find yourself
in a situation where you would like to set a thread variable to something that is also
accessible to any child threads created from that thread. Well, great news then…
this gem lets you do just that!

Installation

Typical stuff: add gem "inheritable-thread-vars" to your Gemfile or .gemspec file. Or even just
gem install inheritable-thread-vars if just playing with it directly in scripts.

Usage

require "inheritable-thread-vars"

Thread.inheritable_thread_local_var_set("some_var", "parent_value")
Thread.inheritable_thread_local_var_get("some_var") # "parent_value"

Thread.new do
  Thread.inheritable_thread_local_var_get("some_var") # "parent_value"
  Thread.inheritable_thread_local_var_set("some_var", "child_value")
  Thread.inheritable_thread_local_var_get("some_var") # "child_value"
end

Thread.inheritable_thread_local_var_get("some_var") # "parent_value"

Contributing

Bug reports and pull requests are welcome on GitHub
at https://github.com/foobara/inheritable-thread-vars

License

This project is dual licensed under your choice of the Apache-2.0 license and the MIT license.
Please see LICENSE.txt for more info.