X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_task.c;h=4a78766e2828664b1687b09f0ea28a02ac987066;hp=4664163d6a1a7ccdd6801575f2b182d58e8d3f6a;hb=00f49c8fb0aa38331360bdb85c32bcebe60dcdc3;hpb=7db9d86178ecfd58cc1c17ac9fcbdcfd2f13aaec diff --git a/src/ao_task.c b/src/ao_task.c index 4664163d..4a78766e 100644 --- a/src/ao_task.c +++ b/src/ao_task.c @@ -217,7 +217,10 @@ ao_wakeup(__xdata void *wchan) void ao_alarm(uint16_t delay) { - if (!(ao_cur_task->alarm = ao_time() + delay)) + /* Make sure we sleep *at least* delay ticks, which means adding + * one to account for the fact that we may be close to the next tick + */ + if (!(ao_cur_task->alarm = ao_time() + delay + 1)) ao_cur_task->alarm = 1; }