Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Wed, Jul 24, 2019 at 7:47 AM Christian Brauner <christian@xxxxxxxxxx> wrote: >> >> This adds the pidfd_wait() syscall. > > I despise this patch. > > Why can't this just be a new P_PIDFD flag, and then use > "waitid(P_PIDFD, pidfd, ...);" > > Yes, yes, yes, I realize that "pidfd" is of type "int", and waitid() > takes an argument of type pid_t, but it's the same type in the end, > and it does seem like the whole *point* of "waitid()" is that > "idtype_t idtype" which tells you what kind of ID you're passing it. Just to emphasize this point. The posix declaration of waitid is: >int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options); Where id_t is defined as: > id_t - Used as a general identifier; can be used to contain at least a pid_t, uid_t, or gid_t. And the BSDs at least have defined P_UID and P_GID. So that flexibility has been used. So it looks entirely reasonable to have P_PIDFD that just waits for a specified child. Eric