From 55c76eaac12af4e93f8de11bb25c835e8b65c623 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 20 Aug 2020 23:13:25 +1000 Subject: extmod/uasyncio: Truncate negative sleeps to 0. Otherwise a task that continuously awaits on a large negative sleep can monopolise the scheduler (because its wake time is always less than everything else in the pairing heap). Signed-off-by: Damien George --- extmod/uasyncio/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'extmod') diff --git a/extmod/uasyncio/core.py b/extmod/uasyncio/core.py index 689487d36..045b4cd13 100644 --- a/extmod/uasyncio/core.py +++ b/extmod/uasyncio/core.py @@ -53,7 +53,7 @@ class SingletonGenerator: # Use a SingletonGenerator to do it without allocating on the heap def sleep_ms(t, sgen=SingletonGenerator()): assert sgen.state is None - sgen.state = ticks_add(ticks(), t) + sgen.state = ticks_add(ticks(), max(0, t)) return sgen -- cgit v1.2.3