summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/z_Linux_util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/src/z_Linux_util.cpp')
-rw-r--r--openmp/runtime/src/z_Linux_util.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/openmp/runtime/src/z_Linux_util.cpp b/openmp/runtime/src/z_Linux_util.cpp
index b9490ea65d3..8cba1ff5607 100644
--- a/openmp/runtime/src/z_Linux_util.cpp
+++ b/openmp/runtime/src/z_Linux_util.cpp
@@ -1812,13 +1812,16 @@ __kmp_resume_monitor()
void
__kmp_yield( int cond )
{
- if (cond
+ if (!cond)
+ return;
#if KMP_USE_MONITOR
- && __kmp_yielding_on
+ if (!__kmp_yielding_on)
+ return;
+#else
+ if (__kmp_yield_cycle && !KMP_YIELD_NOW())
+ return;
#endif
- ) {
- sched_yield();
- }
+ sched_yield();
}
/* ------------------------------------------------------------------------ */
OpenPOWER on IntegriCloud