fix pthread_join wait call: thread termination tid futex is not private
authorRich Felker <dalias@aerifal.cx>
Sat, 10 Sep 2011 03:10:27 +0000 (23:10 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 10 Sep 2011 03:10:27 +0000 (23:10 -0400)
this seeme to be the bug that prevented enabling of private futex
support. i'm going to hold off on switching to private futexes until
after the next release, and until i get a chance to audit all
wait/wake calls to make sure they're using the correct private
argument, but with this change it should be safe to enable private
futex support.

src/thread/pthread_join.c

index 664abda..1b0c4f3 100644 (file)
@@ -7,7 +7,7 @@ static void dummy(void *p)
 int pthread_join(pthread_t t, void **res)
 {
        int tmp = t->tid;
-       if (tmp) __timedwait(&t->tid, tmp, 0, 0, dummy, 0, 1);
+       if (tmp) __timedwait(&t->tid, tmp, 0, 0, dummy, 0, 0);
        if (res) *res = t->result;
        if (t->map_base) munmap(t->map_base, t->map_size);
        return 0;