diff --git a/oslo_messaging/_drivers/zmq_driver/poller/green_poller.py b/oslo_messaging/_drivers/zmq_driver/poller/green_poller.py index 056d2665e..fdf9b442d 100644 --- a/oslo_messaging/_drivers/zmq_driver/poller/green_poller.py +++ b/oslo_messaging/_drivers/zmq_driver/poller/green_poller.py @@ -13,7 +13,6 @@ # under the License. import logging -import threading import eventlet @@ -67,23 +66,17 @@ class GreenExecutor(zmq_poller.Executor): def __init__(self, method): self._method = method super(GreenExecutor, self).__init__(None) - self._done = threading.Event() def _loop(self): - while not self._done.is_set(): + while True: self._method() eventlet.sleep() def execute(self): - self.thread = eventlet.spawn(self._loop) - - def wait(self): - if self.thread is not None: - self.thread.wait() + if self.thread is None: + self.thread = eventlet.spawn(self._loop) def stop(self): if self.thread is not None: self.thread.kill() - - def done(self): - self._done.set() + self.thread = None diff --git a/oslo_messaging/_drivers/zmq_driver/poller/threading_poller.py b/oslo_messaging/_drivers/zmq_driver/poller/threading_poller.py index 0b9b3320c..b150a0613 100644 --- a/oslo_messaging/_drivers/zmq_driver/poller/threading_poller.py +++ b/oslo_messaging/_drivers/zmq_driver/poller/threading_poller.py @@ -72,8 +72,9 @@ class ThreadingExecutor(zmq_poller.Executor): def __init__(self, method): self._method = method - super(ThreadingExecutor, self).__init__( - threading.Thread(target=self._loop)) + thread = threading.Thread(target=self._loop) + thread.daemon = True + super(ThreadingExecutor, self).__init__(thread) self._stop = threading.Event() def _loop(self): @@ -81,14 +82,7 @@ class ThreadingExecutor(zmq_poller.Executor): self._method() def execute(self): - self.thread.daemon = True self.thread.start() def stop(self): self._stop.set() - - def wait(self): - pass - - def done(self): - self._stop.set() diff --git a/oslo_messaging/_drivers/zmq_driver/zmq_poller.py b/oslo_messaging/_drivers/zmq_driver/zmq_poller.py index c2abd4af3..124a3a736 100644 --- a/oslo_messaging/_drivers/zmq_driver/zmq_poller.py +++ b/oslo_messaging/_drivers/zmq_driver/zmq_poller.py @@ -100,11 +100,3 @@ class Executor(object): @abc.abstractmethod def stop(self): """Stop execution""" - - @abc.abstractmethod - def wait(self): - """Wait until pass""" - - @abc.abstractmethod - def done(self): - """More soft way to stop rather than killing thread"""