nuttx/sched/semaphore
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
Make.defs
sem_clockwait.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sem_destroy.c sched/semaphore: Correct the return value comment of nxsem_init/nxmutex_init 2026-09-25 10:37:43 +02:00
sem_holder.c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
sem_initialize.c
sem_post.c sched: Skip wd_cancel() on wakeup when the waiter set no timeout. 2026-10-05 20:17:02 +08:00
sem_protect.c
sem_recover.c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
sem_reset.c coverity: HIS_metric_violation(HIS_CALLS) 2026-01-27 20:54:55 +08:00
sem_rw.c sched/semaphore: Remove the return value check of nxsem_init/nxmutex_init 2026-09-25 10:37:43 +02:00
sem_setprotocol.c
sem_tickwait.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
sem_timedwait.c
sem_timeout.c
sem_trywait.c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
sem_wait.c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
sem_waitirq.c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
semaphore.h sched/semaphore: remove dead code if no CONFIG_PRIORITY_PROTEC 2026-01-27 14:29:33 -03:00