mirror of https://github.com/python/cpython
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.
This commit is contained in:
parent
99be1cbeb3
commit
41fccd23e9
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue