diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py index 21e129b5..883ca49c 100644 --- a/ryu/base/app_manager.py +++ b/ryu/base/app_manager.py @@ -149,6 +149,15 @@ class RyuApp(object): class AppManager(object): + # singletone + _instance = None + + @staticmethod + def get_instance(): + if not AppManager._instance: + AppManager._instance = AppManager() + return AppManager._instance + def __init__(self): self.applications_cls = {} self.applications = {} diff --git a/ryu/cmd/manager.py b/ryu/cmd/manager.py index 83867054..82dc60a1 100755 --- a/ryu/cmd/manager.py +++ b/ryu/cmd/manager.py @@ -63,7 +63,7 @@ def main(): app_lists = CONF.app_lists + CONF.app - app_mgr = AppManager() + app_mgr = AppManager.get_instance() app_mgr.load_apps(app_lists) contexts = app_mgr.create_contexts() app_mgr.instantiate_apps(**contexts)