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.
(cherry picked from commit c2368cbc83ca2bafeaea0e4760be4996046d0444)
Co-authored-by: Victor Stinner <vstinner@redhat.com>
diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py
index 04df26b..3f26380 100644
--- a/Lib/multiprocessing/managers.py
+++ b/Lib/multiprocessing/managers.py
@@ -18,8 +18,8 @@
import threading
import array
import queue
+import time
-from time import time as _time
from traceback import format_exc
from . import connection
@@ -1045,13 +1045,13 @@
if result:
return result
if timeout is not None:
- endtime = _time() + timeout
+ endtime = time.monotonic() + timeout
else:
endtime = None
waittime = None
while not result:
if endtime is not None:
- waittime = endtime - _time()
+ waittime = endtime - time.monotonic()
if waittime <= 0:
break
self.wait(waittime)