Message ID | 1421108640.23151.20.camel@triegel.csb |
---|---|
State | New |
Headers | show |
> 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.
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c index 5cffd82..74482b7 100644 --- a/sysdeps/nptl/fork.c +++ b/sysdeps/nptl/fork.c @@ -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; }