/* TSAN-invisible barriers. Link with -ldl. */ #include #include static __typeof(pthread_barrier_wait) *barrier_wait; static void barrier_init (pthread_barrier_t *barrier, unsigned count) { void *h = dlopen ("libpthread.so.0", RTLD_LAZY); barrier_wait = (__typeof (pthread_barrier_wait) *) dlsym (h, "pthread_barrier_wait"); pthread_barrier_init (barrier, NULL, count); }