sched/event: fix event bug after csection was removed

Change:
    Replace list_delete_init() with list_delete() in nxevent_post.
  Reason:
    PR 16933 removed list_delete() in nxevent_wait() and  allow other task
    to preempt event-wait thread after list_add_tail() option,  the even-post thread
    can preempt it at this time and do  list_delete_init().

    The problem is that list_delete_init() will make  list_in_list() return true, so
    DEBUGASSERT(!list_in_list(&(wait->node))); will fail in nxevent_wait() after the event-wait thread
    returns.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
This commit is contained in:
wangchengdong 2025-09-08 18:35:31 +08:00 committed by Xiang Xiao
parent e7ecf19a68
commit c0d7269840

View file

@ -104,7 +104,7 @@ int nxevent_post(FAR nxevent_t *event, nxevent_mask_t events,
if ((!waitall && ((wait->expect & event->events) != 0)) ||
(waitall && ((wait->expect & event->events) == wait->expect)))
{
list_delete_init(&wait->node);
list_delete(&wait->node);
ret = nxsem_post(&wait->sem);
if (ret < 0)