Index: fusl/src/thread/pthread_barrier_destroy.c |
diff --git a/fusl/src/thread/pthread_barrier_destroy.c b/fusl/src/thread/pthread_barrier_destroy.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4ce0b2e1278499de5e417f870d4e4e6c04655638 |
--- /dev/null |
+++ b/fusl/src/thread/pthread_barrier_destroy.c |
@@ -0,0 +1,15 @@ |
+#include "pthread_impl.h" |
+ |
+int pthread_barrier_destroy(pthread_barrier_t *b) |
+{ |
+ if (b->_b_limit < 0) { |
+ if (b->_b_lock) { |
+ int v; |
+ a_or(&b->_b_lock, INT_MIN); |
+ while ((v = b->_b_lock) & INT_MAX) |
+ __wait(&b->_b_lock, 0, v, 0); |
+ } |
+ __vm_wait(); |
+ } |
+ return 0; |
+} |