aboutsummaryrefslogtreecommitdiff
path: root/final/runtime/test/ompt/ompt-signal.h
diff options
context:
space:
mode:
Diffstat (limited to 'final/runtime/test/ompt/ompt-signal.h')
-rw-r--r--final/runtime/test/ompt/ompt-signal.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/final/runtime/test/ompt/ompt-signal.h b/final/runtime/test/ompt/ompt-signal.h
new file mode 100644
index 0000000..b5c28cf
--- /dev/null
+++ b/final/runtime/test/ompt/ompt-signal.h
@@ -0,0 +1,31 @@
+#if defined(WIN32) || defined(_WIN32)
+#include <windows.h>
+#define delay() Sleep(1);
+#else
+#include <unistd.h>
+#define delay(t) usleep(t);
+#endif
+
+// These functions are used to provide a signal-wait mechanism to enforce expected scheduling for the test cases.
+// Conditional variable (s) needs to be shared! Initialize to 0
+
+#define OMPT_SIGNAL(s) ompt_signal(&s)
+//inline
+void ompt_signal(int* s)
+{
+ #pragma omp atomic
+ (*s)++;
+}
+
+#define OMPT_WAIT(s,v) ompt_wait(&s,v)
+// wait for s >= v
+//inline
+void ompt_wait(int *s, int v)
+{
+ int wait=0;
+ do{
+ delay(10);
+ #pragma omp atomic read
+ wait = (*s);
+ }while(wait<v);
+}