Re: [PATCH] Use ERESTARTNOHAND if poll() is interrupted by a signal

From: Chris Wright
Date: Mon Jul 30 2007 - 19:57:17 EST


* Manfred Spraul (manfred@xxxxxxxxxxxxxxxx) wrote:
> poll() returns -EINTR if a signal is pending.
> EINTR is a bad choice: it means that poll returns to user space if the
> task is stopped by SIGSTOP/SIGCONT or by the freezer.
> select() and ppoll() both use ERESTARTNOHAND, this avoids a return to
> user space for signals that are handled by the kernel.

This does change user visible behaviour, however, it's already
inconsistent as you've noted. I was concerned about that change, but
wrote some tests and this behaviour does make sense to me.

thanks,
-chris
-
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/