diff options
| author | Rusty Russell <rusty@rustcorp.com.au> | 2004-11-29 04:24:39 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-29 04:24:39 -0800 |
| commit | e5f39047bfa57e93d5bf6657823c909dfd5c7564 (patch) | |
| tree | 197eca1ca1517df60ac26123626e602b4978257b /include/linux/module.h | |
| parent | 7f357f99380cf5927ddd66e49d2ebc23f19814eb (diff) | |
[PATCH] Remove Futex Warning
If we're waiting on a futex and we are woken up, it's either because
someone did FUTEX_WAKE, we timed out, or have been signalled. However, the
WARN_ON(!signal_pending(current)) test is overzealous: with threads (a
common use of futexes), we share the signal handler and the other
thread might get to the signal before us. In addition, exit_notify()
can do a recalc_sigpending_tsk() on us, which will then clear our
TIF_SIGPENDING bit, making signal_pending(current) return false.
Returning EINTR is a little strange in this case, since this thread
hasn't handled a signal. However, with threads it's the best we can
do: there's always a race where another thread could have been the
actual one to handle the signal.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/module.h')
0 files changed, 0 insertions, 0 deletions
