summaryrefslogtreecommitdiff
path: root/oslo_messaging/_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_messaging/_utils.py')
-rw-r--r--oslo_messaging/_utils.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/oslo_messaging/_utils.py b/oslo_messaging/_utils.py
index 969bdbb..0ce1a16 100644
--- a/oslo_messaging/_utils.py
+++ b/oslo_messaging/_utils.py
@@ -14,11 +14,25 @@
# under the License.
import logging
+import threading
from oslo_utils import eventletutils
+from oslo_utils import importutils
LOG = logging.getLogger(__name__)
+eventlet = importutils.try_import('eventlet')
+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')
+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
+
def version_is_compatible(imp_version, version):
"""Determine whether versions are compatible.