From 3460e289851112f1007cf75ab10806ba6b1cbf2c Mon Sep 17 00:00:00 2001 From: chao an Date: Tue, 27 Oct 2026 17:06:40 +0800 Subject: [PATCH] sched/event: Skip post processing without waiters Avoid preparing wakeup state when posting events to an empty wait list. The event bits are still updated before returning so future waiters observe the posted state. Signed-off-by: chao an --- sched/event/event_post.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sched/event/event_post.c b/sched/event/event_post.c index 6b6cf6ec0ad10..5a8a6f5286de0 100644 --- a/sched/event/event_post.c +++ b/sched/event/event_post.c @@ -86,9 +86,15 @@ int nxevent_post(FAR nxevent_t *event, nxevent_mask_t events, event->events |= events ? events : ~0; } + waitlist = EVENT_WAITLIST(event); + if (dq_empty(waitlist)) + { + leave_critical_section(flags); + return OK; + } + postall = ((eflags & NXEVENT_POST_ALL) != 0); rtcb = this_task(); - waitlist = EVENT_WAITLIST(event); dq_for_every_safe(waitlist, entry, tmp) {