nuttx/sched/signal
Marco Casaroli 7e5cf3d5d0
Some checks are pending
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions
sched: Skip wd_cancel() on wakeup when the waiter set no timeout.
A task woken from a semaphore, a signal wait, a message queue or an event
wait gets its timeout watchdog cancelled, but most waiters set none, and
wd_cancel() then only takes the critical section to find that out.

Check WDOG_ISACTIVE() first at these call sites.  Each already holds the
critical section, so wd_expiration() cannot be running the watchdog on
another CPU and the check is exact on SMP too.  wd_cancel() itself keeps
its locked check.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-10-05 20:17:02 +08:00
..
CMakeLists.txt arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
Make.defs arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_action.c libc, sched: Resolve FDPIC descriptors at module callback entry points. 2026-09-25 10:46:48 -03:00
sig_allocpendingsigaction.c sched/signal: Move dynamic allocation of pending signals to a safe place 2025-05-08 21:32:08 +08:00
sig_cleanup.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_clockwait.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_default.c sched/signal: run no cleanup handlers on signal termination 2026-10-02 15:38:52 -03:00
sig_deliver.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_dispatch.c sched: Skip wd_cancel() on wakeup when the waiter set no timeout. 2026-10-05 20:17:02 +08:00
sig_findaction.c sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
sig_initialize.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_kill.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_lowest.c sched/signal: Fix nxsig_ismember() return value behavior 2025-11-25 10:02:52 +08:00
sig_nanosleep.c
sig_notification.c libc, sched: Resolve FDPIC descriptors at module callback entry points. 2026-09-25 10:46:48 -03:00
sig_pause.c sched/signal: Remove shadow definitions to reduce unnecessary API 2025-10-14 17:40:18 +08:00
sig_pending.c sched/signal: use spinlock to protect signal queues 2026-01-17 18:29:17 -03:00
sig_ppoll.c
sig_procmask.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_pselect.c
sig_queue.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_releasependingsigaction.c
sig_releasependingsignal.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_removependingsignal.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_sleep.c
sig_suspend.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sig_tgkill.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
sig_timedwait.c sched/signal: Unblock sigtimedwait through kernel memory. 2026-08-08 14:59:21 -03:00
sig_unmaskpendingsignal.c Fix signal delivered to a wrong thread 2025-05-08 21:32:35 +08:00
sig_usleep.c
sig_waitinfo.c
signal.h arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00