| /* TSAN-invisible barriers. Link with -ldl. */ | |
| #include <pthread.h> | |
| #include <dlfcn.h> | |
| 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); | |
| } |