Sha256: 1861a8eb8ea849f79f8dbbdb12e6d2835435e643599ae2fee69c78a91c6c2b67

Contents?: true

Size: 490 Bytes

Versions: 4

Compression:

Stored size: 490 Bytes

Contents

class Thread
  def dynamic_vars
    @dynamic_vars ||= []
    @dynamic_vars
  end
  alias_method :set_thread_local, :[]=

  def []=(var, val)
    dynamic_vars << var unless dynamic_vars.include? var
    set_thread_local(var, val)
  end

  class << self
    alias_method :old_new, :new
    def new(*args, &block)
      parent = current
      old_new(*args) do
        parent.dynamic_vars.each do |v|
          current[v] = parent[v]
        end
        block.call
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fancy-0.8.0 boot/fancy_ext/thread.rb
fancy-0.7.0 boot/fancy_ext/thread.rb
fancy-0.6.0 boot/fancy_ext/thread.rb
fancy-0.5.0 boot/fancy_ext/thread.rb