summaryrefslogtreecommitdiffstats
path: root/openstack/common
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-16 15:17:49 +0000
committerGerrit Code Review <review@openstack.org>2013-07-16 15:17:49 +0000
commitc935d1cba2a5716b71930ae2b4acd9fbeca4abdc (patch)
tree8b88351e447d0853087e118e1c68fa33ebc0a994 /openstack/common
parent6dfe2e11702009f2fd8c495579501f529ee743cf (diff)
parentdc8aa797c304251a3cb960f5274681a602ea077b (diff)
downloadoslo-c935d1cba2a5716b71930ae2b4acd9fbeca4abdc.tar.gz
oslo-c935d1cba2a5716b71930ae2b4acd9fbeca4abdc.tar.xz
oslo-c935d1cba2a5716b71930ae2b4acd9fbeca4abdc.zip
Merge "Allow launchers to be stopped multiple times"
Diffstat (limited to 'openstack/common')
-rw-r--r--openstack/common/service.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/openstack/common/service.py b/openstack/common/service.py
index 24ab5e9..cb71af2 100644
--- a/openstack/common/service.py
+++ b/openstack/common/service.py
@@ -317,7 +317,9 @@ class Service(object):
def stop(self):
self.tg.stop()
self.tg.wait()
- self._done.send()
+ # Signal that service cleanup is done:
+ if not self._done.ready():
+ self._done.send()
def wait(self):
self._done.wait()
@@ -340,9 +342,10 @@ class Services(object):
service.stop()
service.wait()
- # each service has performed cleanup, now signal that the run_service
+ # Each service has performed cleanup, now signal that the run_service
# wrapper threads can now die:
- self.done.send()
+ if not self.done.ready():
+ self.done.send()
# reap threads:
self.tg.stop()