Messages in this thread | | | Date | Sat, 20 Apr 2019 13:51:26 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH RFC 1/2] Add polling support to pidfd |
| |
On 04/19, Christian Brauner wrote: > > > Just for the exit notification purposes, the states are: > > if process has exit_state == 0, block. > > if process is zombie/dead but not reaped, then return POLLIN > > if process is reaped, then return POLLIN | POLLHUP > > Oleg was explicitly against EXIT_ZOMBIE/DEAD thing, no? He said so in a > prior mail. Has this been addressed?
Yes, please don't use EXIT_XXX codes, nobody should ever use them except the core kernel exit/wait paths. For example, EXIT_DEAD means that the task auto- reaps or its parent had to temporary drop tasklist.
Just check ->exit_state != 0 && thread_group_empty(). Note that we need thread_group_empty() only for the case when the task is traced, in this case we have an extra notification for debugger which can confuse pidfd_poll().
And of course, everything will differ if/when we will need to monitor the sub-threads.
And btw I don't think it needs tasklist_lock, but lets discuss this when we have a new version based on pidfd.
Oleg.
| |