aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/time/posix-timers.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index dd0b1dff54d9..22e1d6bf349b 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -250,14 +250,14 @@ static void common_hrtimer_rearm(struct k_itimer *timr)
}
/*
- * This function is called from the signal delivery code if
- * info::si_sys_private is not zero, which indicates that the timer has to
- * be rearmed. Restart the timer and update info::si_overrun.
+ * This function is called from the signal delivery code. It decides
+ * whether the signal should be dropped and rearms interval timers.
*/
bool posixtimer_deliver_signal(struct kernel_siginfo *info)
{
struct k_itimer *timr;
unsigned long flags;
+ bool ret = false;
/*
* Release siglock to ensure proper locking order versus
@@ -279,6 +279,7 @@ bool posixtimer_deliver_signal(struct kernel_siginfo *info)
info->si_overrun = timer_overrun_to_int(timr, info->si_overrun);
}
+ ret = true;
unlock_timer(timr, flags);
out:
@@ -286,7 +287,7 @@ out:
/* Don't expose the si_sys_private value to userspace */
info->si_sys_private = 0;
- return true;
+ return ret;
}
int posix_timer_queue_signal(struct k_itimer *timr)