bpo-34054: multiprocessing uses time.monotonic() (GH-8118)
The multiprocessing module now uses the monotonic clock
time.monotonic() instead of the system clock time.time() to implement
timeouts.
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
index 7a621a5..1f3ea50 100644
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -57,10 +57,10 @@
def _init_timeout(timeout=CONNECTION_TIMEOUT):
- return time.time() + timeout
+ return time.monotonic() + timeout
def _check_timeout(t):
- return time.time() > t
+ return time.monotonic() > t
#
#
@@ -914,7 +914,7 @@
selector.register(obj, selectors.EVENT_READ)
if timeout is not None:
- deadline = time.time() + timeout
+ deadline = time.monotonic() + timeout
while True:
ready = selector.select(timeout)
@@ -922,7 +922,7 @@
return [key.fileobj for (key, events) in ready]
else:
if timeout is not None:
- timeout = deadline - time.time()
+ timeout = deadline - time.monotonic()
if timeout < 0:
return ready