process-shared barrier support, based on discussion with bdonlan
[musl] / src / thread / pthread_barrier_init.c
index 736d101..ccaab4e 100644 (file)
@@ -2,7 +2,7 @@
 
 int pthread_barrier_init(pthread_barrier_t *b, const pthread_barrierattr_t *a, unsigned count)
 {
-       if (!count) return EINVAL;
-       *b = (pthread_barrier_t){ ._b_limit = count-1 };
+       if (count-1 > INT_MAX-1) return EINVAL;
+       *b = (pthread_barrier_t){ ._b_limit = count-1 | (a?*a:0) };
        return 0;
 }