summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/test/omp_my_sleep.h
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/test/omp_my_sleep.h')
-rw-r--r--openmp/runtime/test/omp_my_sleep.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/openmp/runtime/test/omp_my_sleep.h b/openmp/runtime/test/omp_my_sleep.h
new file mode 100644
index 00000000000..138d930ca64
--- /dev/null
+++ b/openmp/runtime/test/omp_my_sleep.h
@@ -0,0 +1,33 @@
+#ifndef MY_SLEEP_H
+#define MY_SLEEP_H
+
+/*! Utility function to have a sleep function with better resolution and
+ * which only stops one thread. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <time.h>
+
+#if defined(_WIN32)
+# include <windows.h>
+// Windows version of my_sleep() function
+static void my_sleep(double sleeptime) {
+ DWORD ms = (DWORD) (sleeptime * 1000.0);
+ Sleep(ms);
+}
+
+
+#else // _WIN32
+
+// Unices version of my_sleep() function
+static void my_sleep(double sleeptime) {
+ struct timespec ts;
+ ts.tv_sec = (time_t)sleeptime;
+ ts.tv_nsec = (long)((sleeptime - (double)ts.tv_sec) * 1E9);
+ nanosleep(&ts, NULL);
+}
+
+#endif // _WIN32
+
+#endif // MY_SLEEP_H
OpenPOWER on IntegriCloud