diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py index d00a6ab5d..50e0a66a8 100644 --- a/oslo_messaging/_drivers/impl_rabbit.py +++ b/oslo_messaging/_drivers/impl_rabbit.py @@ -651,6 +651,8 @@ class Connection(object): # if it was already monkey patched by eventlet/greenlet. global threading threading = _utils.stdlib_threading + amqpdriver.threading = _utils.stdlib_threading + amqpdriver.queue = _utils.stdlib_queue self.direct_mandatory_flag = driver_conf.direct_mandatory_flag diff --git a/oslo_messaging/_utils.py b/oslo_messaging/_utils.py index 0ce1a1678..ff7440a0a 100644 --- a/oslo_messaging/_utils.py +++ b/oslo_messaging/_utils.py @@ -14,6 +14,7 @@ # under the License. import logging +import queue import threading from oslo_utils import eventletutils @@ -26,12 +27,14 @@ if eventlet and eventletutils.is_monkey_patched("thread"): # Here we initialize module with the native python threading module # if it was already monkey patched by eventlet/greenlet. stdlib_threading = eventlet.patcher.original('threading') + stdlib_queue = eventlet.patcher.original('queue') else: # Manage the case where we run this driver in a non patched environment # and where user even so configure the driver to run heartbeat through # a python thread, if we don't do that when the heartbeat will start # we will facing an issue by trying to override the threading module. stdlib_threading = threading + stdlib_queue = queue def version_is_compatible(imp_version, version):