Требует ли вызов read () для signalfd использования SIGCHLD?
Или мне нужно использовать вызов waitid () после?
Я получил читаемое событие в signalfd с помощью вызова epoll_wait (), затем я выполняю read () для signalfd, который выдает всю информацию, необходимую в signalfd_siginfo.
Я зацикливаюсь на read () до возврата -1 и errno = EAGAIN.
Но с помощью команды оболочки ps aux процессы все еще здесь с <defunct>
.
Если я зациклюсь на waitid (), у меня нет проблем.
Зачем мне нужно вызывать waitid () после чтения (signalfd)?
Я не вижу такого поведения на страницах руководства и не могу найти исходный пример по этому поводу.