LLVM OpenMP 22.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
10// expected scheduling for the test cases. Conditional variable (s) needs to be
11// shared! Initialize to 0
12
13#define OMPT_SIGNAL(s) ompt_signal(&s)
14// inline
15void ompt_signal(int *s) {
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 int wait = 0;
25 do {
26 delay(10);
27#pragma omp atomic read
28 wait = (*s);
29 } while (wait < v);
30}
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:15
void ompt_wait(int *s, int v)
Definition: ompt-signal.h:23