Thread (20 messages) 20 messages, 8 authors, 2018-11-28

Re: extending wait4(2) or waitid(2) linux syscall

From: Florian Weimer <hidden>
Date: 2018-11-26 15:18:40

* Arnd Bergmann:
On Thu, Nov 15, 2018 at 7:30 AM Dmitry V. Levin [off-list ref] wrote:
quoted
On Thu, Nov 15, 2018 at 06:39:03AM -0800, Arnd Bergmann wrote:
quoted
On Thu, Nov 15, 2018 at 6:05 AM Dmitry V. Levin wrote:
quoted
On Thu, Apr 20, 2017 at 03:20:51PM +0200, Albert ARIBAUD wrote:
1. strace needs a race-free invocation of wait4(2) or waitid(2)
with a different signal mask, this cannot be achieved without
an extended version of syscall, similar to pselect6(2) extension
over select(2) and ppoll(2) extension over poll(2).

Signal mask specification in linux requires two parameters:
"const sigset_t *sigmask" and "size_t sigsetsize".
Creating pwait6(2) as an extension of wait4(2) with two arguments
is straightforward.
Creating pwaitid(2) as an extension of waitid(2) that already has 5
arguments would require an indirection similar to pselect6(2).
Getting back to this point: you could also do the same thing with
the CLONE_FD approach from Josh Triplett[1] or Casey Dahlin's
older waitfd() syscall, correct?
A descriptor-based solution would not be useful to glibc because
applications assume that glibc does not (persistently) open any file
descriptors behind t heir back.

Thanks,
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help