LLVM OpenMP 20.0.0git
ompt-signal.h
Go to the documentation of this file.
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
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
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}
void const char const char int ITT_FORMAT __itt_group_sync s
#define delay(t)
Definition: ompt-signal.h:6
void ompt_signal(int *s)
Definition: ompt-signal.h:14
void ompt_wait(int *s, int v)
Definition: ompt-signal.h:23