Skip to content

Commit

Permalink
test_asyncio: run_until() implements exponential sleep (#93866)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
vstinner authored Jun 15, 2022
1 parent 99be1cb commit 41fccd2
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion Lib/test/test_asyncio/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,12 @@ async def once():


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()

Expand Down

0 comments on commit 41fccd2

Please sign in to comment.