Re: Fw: sigwait() breaks when straced

From: Ulrich Drepper
Date: Mon Aug 01 2005 - 14:21:49 EST


On 8/1/05, Jesper Juhl <jesper.juhl@xxxxxxxxx> wrote:
> I'm not quite sure you are right Ulrich. Given this little bit from
> SUSv3 about SA_RESTART in the page describing sigaction (
> http://www.opengroup.org/onlinepubs/009695399/functions/sigaction.html
> ) :

It's not an official SA_RESTART since the syscall is defined to
support EINTR. It's clear that sigwait in this sense is not
interruptible. Return EINTR from sigwait is only allowed by POSIX
since there is no contrary wording (unlike for the pthread functions).
But if this clause would be used each and every syscall could return
EINTR and we would have to surround all syscalls with a loop. Hence
the syscall should be restarted, not because SA_RESTART is set, but
because EINTR shouldn't be returned.

Now, Roland correctly said sigtimedwait and sigwaitinfo need to return
EINTR and we use one syscall for them all. I overlook that part. So,
I'll add the wrapper in the libc so that sigwait restarts on EINTR.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/