Re: Re: Strange Linux behaviour with blocking syscalls and stopsignals+SIGCONT

From: Michael Kerrisk
Date: Fri Jul 07 2006 - 00:31:02 EST


Von: Ulrich Drepper <drepper@xxxxxxxxxx>

> Manfred Spraul wrote:
> > 1) I would go further and try ERESTARTSYS: ERESTARTSYS means that the
> > kernel signal handler honors SA_RESTART
> > 2) At least for the futex functions, it won't be as easy as replacing
> > EINTR wiht ERESTARTSYS: the futex functions receive a timeout a the
> > parameter, with the duration of the wait call as a parameter. You must
> > use ERESTART_RESTARTBLOCK.
>
> Whoa, not so fast. At least the futex syscall but be interruptible by
> signals. It is crucial to return EINTR.

When you say "return" do you mean "in kernel", or "return
to userspace"? My (possibly naive) understanding is that
one could simply s/EINTR/ERESTARTNOHAND/ for FUTEX_WAIT, in
order to achieve the change I want: for userland that
ERESTARTNOHAND would be returned as EINTR if a signal
handler interrupted the FUTEX_WAIT.

Cheers,

Michael
--


"Feel free" â 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
-
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/