On Thursday 2021-07-08 08:05, Suren Baghdasaryan wrote: >> >> That explains very clearly the requirement, but it raises the question >> why this isn't an si_code flag for rt_sigqueueinfo, reusing the existing >> system call. > >I think you are suggesting to use sigqueue() to deliver the signal and >perform the reaping when a special value accompanies it. This would be >somewhat similar to my early suggestion to use a flag in >pidfd_send_signal() (see: >https://lore.kernel.org/patchwork/patch/1060407) to implement memory >reaping which has another advantage of operation on PIDFDs instead of >PIDs which can be recycled. >kill()/pidfd_send_signal()/sigqueue() are supposed to deliver the >signal and return without blocking. Changing that behavior was >considered unacceptable in these discussions. The way I understood the request is that a userspace program (or perhaps two, if so desired) should issue _two_ calls, one to deliver the signal, one to perform the reap portion: uinfo.si_code = SI_QUEUE; sigqueue(pid, SIGKILL, &uinfo); uinfo.si_code = SI_REAP; sigqueue(pid, SIGKILL, &uinfo);