rollback #1884
This commit is contained in:
parent
45b044cd6b
commit
492533dcdb
@ -8,14 +8,12 @@ class Singleton(abc.ABCMeta, type):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
_instances: dict = {}
|
_instances: dict = {}
|
||||||
_lock = threading.Lock()
|
|
||||||
|
|
||||||
def __call__(cls, *args, **kwargs):
|
def __call__(cls, *args, **kwargs):
|
||||||
key = (cls, args, frozenset(kwargs.items()))
|
key = (cls, args, frozenset(kwargs.items()))
|
||||||
with cls._lock:
|
if key not in cls._instances:
|
||||||
if key not in cls._instances:
|
cls._instances[key] = super().__call__(*args, **kwargs)
|
||||||
cls._instances[key] = super().__call__(*args, **kwargs)
|
return cls._instances[key]
|
||||||
return cls._instances[key]
|
|
||||||
|
|
||||||
|
|
||||||
class AbstractSingleton(abc.ABC, metaclass=Singleton):
|
class AbstractSingleton(abc.ABC, metaclass=Singleton):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user