From e918595a8ffc241a851ff270a6279d6a9c1797b7 Mon Sep 17 00:00:00 2001 From: Jon Schlueter Date: Wed, 21 Oct 2020 21:42:41 -0400 Subject: [PATCH] Only install monotonic on python2 (#583) Only install monotonic on python<3.5 Co-authored-by: Sergey Shepelev --- eventlet/__init__.py | 7 +++++-- eventlet/hubs/hub.py | 8 ++++++-- setup.py | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/eventlet/__init__.py b/eventlet/__init__.py index 042791fddc..8e1257912e 100644 --- a/eventlet/__init__.py +++ b/eventlet/__init__.py @@ -21,8 +21,11 @@ # Helpful when CPython < 3.5 on Linux blocked in `os.waitpid(-1)` before first use of hub. # Example: gunicorn # https://github.com/eventlet/eventlet/issues/401#issuecomment-327500352 - import monotonic - del monotonic + try: + import monotonic + del monotonic + except ImportError: + pass connect = convenience.connect listen = convenience.listen diff --git a/eventlet/hubs/hub.py b/eventlet/hubs/hub.py index 375f35e8df..db55958544 100644 --- a/eventlet/hubs/hub.py +++ b/eventlet/hubs/hub.py @@ -22,7 +22,11 @@ def alarm_signal(seconds): import eventlet.hubs from eventlet.hubs import timer from eventlet.support import greenlets as greenlet, clear_sys_exc_info -import monotonic +try: + from monotonic import monotonic +except ImportError: + from time import monotonic + import six g_prevent_multiple_readers = True @@ -120,7 +124,7 @@ def __init__(self, clock=None): self.closed = [] if clock is None: - clock = monotonic.monotonic + clock = monotonic self.clock = clock self.greenlet = greenlet.greenlet(self.run) diff --git a/setup.py b/setup.py index 5843464565..0b38eb3c05 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ install_requires=( 'dnspython >= 1.15.0, < 2.0.0', 'greenlet >= 0.3', - 'monotonic >= 1.4', + 'monotonic >= 1.4;python_version<"3.5"', 'six >= 1.10.0', ), zip_safe=False,