Module: Threadsafety::InitializeOverrider

Defined in:
lib/threadsafety.rb

Instance Method Summary collapse

Instance Method Details

#method_added(meth) ⇒ Object



71
72
73
74
75
76
77
78
79
80
# File 'lib/threadsafety.rb', line 71

def method_added meth
  if meth == :initialize && !@__initialized
    @__initialized = true
    original_method = instance_method :initialize
    define_method :initialize do |*args, &block|
      original_method.bind(self).call *args, &block
      @__mutex = Mutex.new
    end
  end
end