Moved Singleton.instance to get rid of redefinition

This commit is contained in:
Nobuyoshi Nakada 2019-06-28 14:23:22 +09:00
parent 951f80f2dd
commit 2d1728b9ce
No known key found for this signature in database
GPG Key ID: 4BC7D6DF58D8DF60

View File

@ -120,6 +120,15 @@ module Singleton
instance
end
def instance # :nodoc:
return @singleton__instance__ if @singleton__instance__
@singleton__mutex__.synchronize {
return @singleton__instance__ if @singleton__instance__
@singleton__instance__ = new()
}
@singleton__instance__
end
private
def inherited(sub_klass)
@ -134,14 +143,6 @@ module Singleton
@singleton__instance__ = nil
@singleton__mutex__ = Thread::Mutex.new
}
def klass.instance # :nodoc:
return @singleton__instance__ if @singleton__instance__
@singleton__mutex__.synchronize {
return @singleton__instance__ if @singleton__instance__
@singleton__instance__ = new()
}
@singleton__instance__
end
klass
end