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)