Re: [PATCH 1/2] Futex minor fixes

From: Alex Riesen
Date: Tue Aug 26 2003 - 04:27:43 EST


Rusty Russell, Tue, Aug 26, 2003 05:05:56 +0200:
> Hi Andrew, Ingo,
>
> This was posted before, but dropped.
>
> Name: Minor futex comment tweaks and cleanups
> Author: Rusty Russell
> Status: Tested on 2.6.0-test4-bk2
>
> D: Changes:
> D:
> D: (1) don't return 0 from futex_wait if we are somehow
> D: spuriously woken up, return -EINTR on any such case,

But the code below does not mean there actually was a signal,
unless I'm missing something.

> - if (time == 0) {
> - ret = -ETIMEDOUT;
> - goto out;
> - }
> - if (signal_pending(current))
> - ret = -EINTR;
> -out:
> - /* Were we woken up anyway? */
> +
> + /* Were we woken up (and removed from queue)? Always return
> + * success when this happens. */
> if (!unqueue_me(&q))
> ret = 0;
> + else if (time == 0)
> + ret = -ETIMEDOUT;
> + else
> + ret = -EINTR;
> +

Here. EINTR is often (if not always) assumed to be caused by a signal.
And someone may rightfully depend on it being that way.

-alex

-
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/