[COMMITTED] Fix wake-up in sysdeps/nptl/fork.c.
Commit Message
Committed this as obvious. The futex wake-up needs the address of the
futex variable, not the value. I've searched glibc bugs for "fork", but
didn't see a bug that seemed to be likely to be related to this.
2015-01-13 Torvald Riegel <triegel@redhat.com>
* sysdeps/nptl/fork.c (__libc_fork): Provide address of futex
variable to lll_futex_wake call, not the value itself.
Comments
> Committed this as obvious. The futex wake-up needs the address of the
> futex variable, not the value.
Yowza! That's a sure sign that we really need this cleanup to demacroify
this stuff and get proper type checking.
> I've searched glibc bugs for "fork", but
> didn't see a bug that seemed to be likely to be related to this.
The failure mode would be a hang at exit, which is not too likely to be
characterized in a user bug report in a way that would be easy to find.
@@ -219,7 +219,7 @@ __libc_fork (void)
if (atomic_decrement_and_test (&allp->handler->refcntr)
&& allp->handler->need_signal)
- lll_futex_wake (allp->handler->refcntr, 1, LLL_PRIVATE);
+ lll_futex_wake (&allp->handler->refcntr, 1, LLL_PRIVATE);
allp = allp->next;
}