sched/sched/sched_waitid.c: Discard the child entry
Summary:
- Discard the child entry after receiving SIGCHLD.
Impact:
- waitid
Testing:
hifive1-revb:nsh (CONFIG_SCHED_HAVE_PARENT=y, CONFIG_SCHED_CHILD_STATUS=y, CONFIG_SIG_DEFAULT=y)
on QEMU
static int task_main(int argc, char *argv[])
{
sleep(1);
return 0;
}
int main(int argc, FAR char *argv[])
{
pid_t pid;
siginfo_t info;
int ret;
pid = task_create("task1", 224, 1024, task_main, NULL);
task_create("task2", 224, 1024, task_main, NULL);
waitid(P_PID, pid, &info, WEXITED);
waitid(P_ALL, 0, &info, WEXITED);
ret = waitid(P_ALL, 0, &info, WEXITED | WNOHANG);
assert(ret == -1);
return 0;
}