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/queues.py b/Lib/multiprocessing/queues.py
index 715a9b0..88f7d26 100644
--- a/Lib/multiprocessing/queues.py
+++ b/Lib/multiprocessing/queues.py
@@ -95,12 +95,12 @@
self._sem.release()
else:
if block:
- deadline = time.time() + timeout
+ deadline = time.monotonic() + timeout
if not self._rlock.acquire(block, timeout):
raise Empty
try:
if block:
- timeout = deadline - time.time()
+ timeout = deadline - time.monotonic()
if not self._poll(timeout):
raise Empty
elif not self._poll():