Messages in this thread | | | Date | Fri, 07 Jul 2006 06:32:20 +0200 | From | "Michael Kerrisk" <> | Subject | Re: Re: Strange Linux behaviour with blocking syscalls and stop signals+SIGCONT |
| |
Von: Ulrich Drepper <drepper@redhat.com>
> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |