From: Victor Stinner Date: Wed, 15 Jun 2022 16:28:00 +0000 (+0200) Subject: test_asyncio: run_until() implements exponential sleep (#93866) X-Git-Tag: v3.12.0a1~1245 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=41fccd23e9b4397d6cc294b42e1a198cd8f8b268;p=thirdparty%2FPython%2Fcpython.git test_asyncio: run_until() implements exponential sleep (#93866) run_until() of test.test_asyncio.utils now uses an exponential sleep delay (max: 1 second), rather than a fixed delay of 1 ms. Similar design than support.sleeping_retry() wait strategy that applies exponential backoff. --- diff --git a/Lib/test/test_asyncio/utils.py b/Lib/test/test_asyncio/utils.py index 07ef33d3fc24..507daa11c28b 100644 --- a/Lib/test/test_asyncio/utils.py +++ b/Lib/test/test_asyncio/utils.py @@ -109,10 +109,12 @@ def run_briefly(loop): def run_until(loop, pred, timeout=support.SHORT_TIMEOUT): + delay = 0.001 for _ in support.busy_retry(timeout, error=False): if pred(): break - loop.run_until_complete(tasks.sleep(0.001)) + loop.run_until_complete(tasks.sleep(delay)) + delay = max(delay * 2, 1.0) else: raise futures.TimeoutError()