This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push: new 2721e01fc2 sched/timer: timer_settime not fully satisfy IEEE 1003.1 2721e01fc2 is described below commit 2721e01fc20da038107767eab23374a6ca5b9147 Author: larry <la...@transtekcorp.com> AuthorDate: Sat Jul 16 08:46:05 2022 +0800 sched/timer: timer_settime not fully satisfy IEEE 1003.1 If the specified time has already passed, the function shall succeed and the expiration notification shall be made. --- sched/timer/timer_settime.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sched/timer/timer_settime.c b/sched/timer/timer_settime.c index 7f0a398a9d..7ee035c5c4 100644 --- a/sched/timer/timer_settime.c +++ b/sched/timer/timer_settime.c @@ -306,18 +306,18 @@ int timer_settime(timer_t timerid, int flags, goto errout; } - /* If the time is in the past or now, then set up the next interval - * instead (assuming a repetitive timer). + /* If the specified time has already passed, the function shall succeed + * and the expiration notification shall be made. */ - if (delay <= 0) + if (delay < 0) { - delay = timer->pt_delay; + delay = 0; } /* Then start the watchdog */ - if (delay > 0) + if (delay >= 0) { ret = wd_start(&timer->pt_wdog, delay, timer_timeout, (wdparm_t)timer); if (ret < 0)