1 #if defined(WIN32) || defined(_WIN32) 2 #include <windows.h> 3 #define delay() Sleep(1); 4 #else 5 #include <unistd.h> 6 #define delay(t) usleep(t); 7 #endif 8 9 // These functions are used to provide a signal-wait mechanism to enforce expected scheduling for the test cases. 10 // Conditional variable (s) needs to be shared! Initialize to 0 11 12 #define OMPT_SIGNAL(s) ompt_signal(&s) 13 //inline ompt_signal(int * s)14void ompt_signal(int* s) 15 { 16 #pragma omp atomic 17 (*s)++; 18 } 19 20 #define OMPT_WAIT(s,v) ompt_wait(&s,v) 21 // wait for s >= v 22 //inline ompt_wait(int * s,int v)23void ompt_wait(int *s, int v) 24 { 25 int wait=0; 26 do{ 27 delay(10); 28 #pragma omp atomic read 29 wait = (*s); 30 }while(wait<v); 31 } 32