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/synchronize.py b/Lib/multiprocessing/synchronize.py
index 038f73f..5137c49 100644
--- a/Lib/multiprocessing/synchronize.py
+++ b/Lib/multiprocessing/synchronize.py
@@ -15,8 +15,7 @@
import sys
import tempfile
import _multiprocessing
-
-from time import time as _time
+import time
from . import context
from . import process
@@ -302,13 +301,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)