xiaoxiang781216 commented on code in PR #17308:
URL: https://github.com/apache/nuttx/pull/17308#discussion_r2516475150


##########
sched/wdog/wd_start.c:
##########
@@ -313,6 +313,32 @@ int wd_start_abstick(FAR struct wdog_s *wdog, clock_t 
ticks,
 
   reassess |= wd_insert(wdog, ticks, wdentry, arg);
 
+  /* If the new watchdog expiration time is earlier than the current system
+   * time, trigger a timer interrupt manually. This ensures that the system
+   * processes the watchdog immediately instead of waiting for the next tick.
+   */
+
+  if (clock_compare(wdog->expired, clock_systime_ticks()))
+    {
+#  ifdef CONFIG_ARCH_HAVE_IRQTRIGGER
+      if (up_timer_trigger() != OK)

Review Comment:
   You can do what ever you want in up_alarm_start if the timeout is smaller 
than one tick including trigger a pseudo timer interrupt through interrupt 
controller. Actually, many hardware timers(e.g. arm generic timer) already 
consider this special case: the timer interrupt is generated by comparing 
`count value >= match value`, not `count value == match value`. In this case, 
you don't need do any special thing at all. So, it's better to continue call 
up_alarm_start and let's the chip/board driver do the special action if needed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to