From f1db56fcd77e3479f8bea9047b83b3757a805567 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 8 Jan 2017 23:05:55 +0100 Subject: [PATCH] Replace sched_yield with usleep(1) on Linux to avoid the massive overhead of the sched_yield call on Linux kernels since its semantics were changed in early 2003 (late 2.5 series) to include reordering of the thread queue. Ref. #900,#923 --- common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common.h b/common.h index 480174c11..e728b9ef3 100644 --- a/common.h +++ b/common.h @@ -313,6 +313,10 @@ typedef int blasint; #if defined(OS_SUNOS) #define YIELDING thr_yield() #endif + +#if defined(OS_LINUX) +#define YIELDING usleep(1) +#endif #if defined(OS_WINDOWS) #if defined(_MSC_VER) && !defined(__clang__)