summaryrefslogtreecommitdiffstats
path: root/openstack
diff options
context:
space:
mode:
Diffstat (limited to 'openstack')
-rw-r--r--openstack/common/service.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/openstack/common/service.py b/openstack/common/service.py
index d9634dc..0c355f7 100644
--- a/openstack/common/service.py
+++ b/openstack/common/service.py
@@ -27,7 +27,6 @@ import sys
import time
import eventlet
-import greenlet
import logging as std_logging
from openstack.common import cfg
@@ -54,7 +53,7 @@ class Launcher(object):
:returns: None
"""
- self._services = []
+ self._services = threadgroup.ThreadGroup('launcher')
eventlet_backdoor.initialize_if_enabled()
@staticmethod
@@ -75,8 +74,7 @@ class Launcher(object):
:returns: None
"""
- gt = eventlet.spawn(self.run_service, service)
- self._services.append(gt)
+ self._services.add_thread(self.run_service, service)
def stop(self):
"""Stop all services which are currently running.
@@ -84,8 +82,7 @@ class Launcher(object):
:returns: None
"""
- for service in self._services:
- service.kill()
+ self._services.stop()
def wait(self):
"""Waits until all services have been stopped, and then returns.
@@ -93,11 +90,7 @@ class Launcher(object):
:returns: None
"""
- for service in self._services:
- try:
- service.wait()
- except greenlet.GreenletExit:
- pass
+ self._services.wait()
class SignalExit(SystemExit):