mirror of
https://github.com/apache/nuttx.git
synced 2026-08-22 14:08:30 +00:00
Summary: - I noticed waitpid_test stops with lc823450-xgevk:rndis - The condition was CONFIG_DEBUG_ASSERTION=y - Actually, the child task sent SIGCHILD but the parent couldn't catch the signal - Then, I found that nx_waitid(), nx_waitpid() use sched_lock() - However, a parent task and a child task are running on different CPUs - So, sched_lock() is not enough and need to use a critical section - Also, signal handling in nxtask_exithook() must be done in a critical section Impact: - SMP only Testing: - Tested with ostest with the following configurations - lc823450-xgevk:rndis (CONFIG_DEBUG_ASSERTION=y and n) - spresense:smp - spresense:wifi_smp (NCPUS=2 and 4) - sabre-6quad:smp (QEMU) - esp32-core:smp (QEMU) - maix-bit:smp (QEMU) - sim:smp Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> |
||
|---|---|---|
| .. | ||
| exit.c | ||
| Make.defs | ||
| spawn.h | ||
| task.h | ||
| task_activate.c | ||
| task_atexit.c | ||
| task_cancelpt.c | ||
| task_create.c | ||
| task_delete.c | ||
| task_execv.c | ||
| task_exit.c | ||
| task_exithook.c | ||
| task_getgroup.c | ||
| task_getpid.c | ||
| task_init.c | ||
| task_onexit.c | ||
| task_posixspawn.c | ||
| task_prctl.c | ||
| task_recover.c | ||
| task_reparent.c | ||
| task_restart.c | ||
| task_setcancelstate.c | ||
| task_setcanceltype.c | ||
| task_setup.c | ||
| task_spawn.c | ||
| task_spawnparms.c | ||
| task_start.c | ||
| task_starthook.c | ||
| task_terminate.c | ||
| task_testcancel.c | ||
| task_vfork.c | ||