ForcePilot/backend/package/yuxi/utils/singleton.py

13 lines
315 B
Python
Raw Normal View History

from threading import Lock
2025-10-24 00:11:52 +08:00
class SingletonMeta(type):
_instances = {}
_lock: Lock = Lock()
def __call__(cls, *args, **kwargs):
with cls._lock:
if cls not in cls._instances:
2026-05-29 22:19:58 +08:00
cls._instances[cls] = super().__call__(*args, **kwargs)
2025-10-24 00:11:52 +08:00
return cls._instances[cls]