summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYAMAMOTO Takashi <yamamoto@valinux.co.jp>2015-04-10 17:36:57 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-04-14 05:20:56 +0900
commit78cb838b2e2f9fbf48b7ec3584a213b7cfa6b358 (patch)
treec70ecd04feb9ce045471f007971268f0a1fbcad0
parentcfdba5c12dde50fa691faec8331fa68da7a09599 (diff)
app_manager: Clean up apps harder
Necessary for neutron functional tests so that a test won't interfere the next test in a run. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/base/app_manager.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
index f0137ea6..e45f9c28 100644
--- a/ryu/base/app_manager.py
+++ b/ryu/base/app_manager.py
@@ -28,6 +28,7 @@ import itertools
import logging
import sys
import os
+import gc
from ryu import cfg
from ryu import utils
@@ -344,6 +345,10 @@ class AppManager(object):
hub.joinall(services)
finally:
app_mgr.close()
+ for t in services:
+ t.kill()
+ hub.joinall(services)
+ gc.collect()
@staticmethod
def get_instance():
@@ -511,5 +516,7 @@ class AppManager(object):
self._close(app)
close_dict.clear()
- close_all(self.applications)
+ for app_name in list(self.applications.keys()):
+ self.uninstantiate(app_name)
+ assert not self.applications
close_all(self.contexts)