14 #include <debug/MinimalCrash.hpp> 15 #include <threads/Thread.hpp> 26 pthread_barrier_t barrier;
32 const char* currBarrName;
41 pthread_barrier_wait(&barrier);
43 if(rc!=0
and rc!=PTHREAD_BARRIER_SERIAL_THREAD)
50 Barrier(
const int& nThreads)
52 if(pthread_barrier_init(&barrier,nullptr,nThreads)!=0)
59 if(pthread_barrier_destroy(&barrier)!=0)
70 void sync(
const char* barrName,
77 if(threadId==masterThreadId)
83 if(currBarrName!=barrName)
84 MINIMAL_CRASH(
"Thread id %d was expecting %s but encountered %s",threadId,currBarrName,barrName);
97 Barrier(
const int& nThreads)
102 void sync(
const char* barrName=nullptr,
103 const int& threadId=0)
#define MINIMAL_CRASH_STDLIBERR(STRING)
Minimal crash with stdlib error.