use internal malloc for posix_spawn file actions objects
[musl] / src / thread / sem_post.c
index 14a2dfe..31e3293 100644 (file)
@@ -3,7 +3,7 @@
 
 int sem_post(sem_t *sem)
 {
-       int val, waiters;
+       int val, waiters, priv = sem->__val[2];
        do {
                val = sem->__val[0];
                waiters = sem->__val[1];
@@ -12,6 +12,6 @@ int sem_post(sem_t *sem)
                        return -1;
                }
        } while (a_cas(sem->__val, val, val+1+(val<0)) != val);
-       if (val<0 || waiters) __wake(sem->__val, 1, 0);
+       if (val<0 || waiters) __wake(sem->__val, 1, priv);
        return 0;
 }