diff --git a/sched/timer_release.c b/sched/timer_release.c index 93ea686c596..83f86954b14 100644 --- a/sched/timer_release.c +++ b/sched/timer_release.c @@ -134,6 +134,10 @@ int timer_release(FAR struct posix_timer_s *timer) return -EINVAL; } + /* Release one reference to timer. Don't delete the timer until the count + * would decrement to zero. + */ + if (timer->pt_crefs > 1) { timer->pt_crefs--;