diff options
Diffstat (limited to 'openmp/runtime/src/z_Linux_util.cpp')
| -rw-r--r-- | openmp/runtime/src/z_Linux_util.cpp | 44 |
1 files changed, 4 insertions, 40 deletions
diff --git a/openmp/runtime/src/z_Linux_util.cpp b/openmp/runtime/src/z_Linux_util.cpp index 08b9742980c..df1c47b57e1 100644 --- a/openmp/runtime/src/z_Linux_util.cpp +++ b/openmp/runtime/src/z_Linux_util.cpp @@ -437,7 +437,7 @@ void __kmp_terminate_thread(int gtid) { __kmp_msg_null); } #endif - __kmp_yield(TRUE); + KMP_YIELD(TRUE); } // /* Set thread stack info according to values returned by pthread_getattr_np(). @@ -580,8 +580,6 @@ static void *__kmp_launch_monitor(void *thr) { sigset_t new_set; #endif /* KMP_BLOCK_SIGNALS */ struct timespec interval; - int yield_count; - int yield_cycles = 0; KMP_MB(); /* Flush all pending memory write invalidates. */ @@ -665,13 +663,6 @@ static void *__kmp_launch_monitor(void *thr) { KA_TRACE(10, ("__kmp_launch_monitor: #2 monitor\n")); - if (__kmp_yield_cycle) { - __kmp_yielding_on = 0; /* Start out with yielding shut off */ - yield_count = __kmp_yield_off_count; - } else { - __kmp_yielding_on = 1; /* Yielding is on permanently */ - } - while (!TCR_4(__kmp_global.g.g_done)) { struct timespec now; struct timeval tval; @@ -707,22 +698,6 @@ static void *__kmp_launch_monitor(void *thr) { status = pthread_mutex_unlock(&__kmp_wait_mx.m_mutex); KMP_CHECK_SYSFAIL("pthread_mutex_unlock", status); - if (__kmp_yield_cycle) { - yield_cycles++; - if ((yield_cycles % yield_count) == 0) { - if (__kmp_yielding_on) { - __kmp_yielding_on = 0; /* Turn it off now */ - yield_count = __kmp_yield_off_count; - } else { - __kmp_yielding_on = 1; /* Turn it on now */ - yield_count = __kmp_yield_on_count; - } - yield_cycles = 0; - } - } else { - __kmp_yielding_on = 1; - } - TCW_4(__kmp_global.g.g_time.dt.t_value, TCR_4(__kmp_global.g.g_time.dt.t_value) + 1); @@ -1011,8 +986,8 @@ retry: // Wait for the monitor thread is really started and set its *priority*. KMP_DEBUG_ASSERT(sizeof(kmp_uint32) == sizeof(__kmp_global.g.g_time.dt.t_value)); - __kmp_wait_yield_4((kmp_uint32 volatile *)&__kmp_global.g.g_time.dt.t_value, - -1, &__kmp_neq_4, NULL); + __kmp_wait_4((kmp_uint32 volatile *)&__kmp_global.g.g_time.dt.t_value, -1, + &__kmp_neq_4, NULL); #endif // KMP_REAL_TIME_FIX #ifdef KMP_THREAD_ATTR @@ -1688,18 +1663,7 @@ void __kmp_resume_monitor() { } #endif // KMP_USE_MONITOR -void __kmp_yield(int cond) { - if (!cond) - return; -#if KMP_USE_MONITOR - if (!__kmp_yielding_on) - return; -#else - if (__kmp_yield_cycle && !KMP_YIELD_NOW()) - return; -#endif - sched_yield(); -} +void __kmp_yield() { sched_yield(); } void __kmp_gtid_set_specific(int gtid) { if (__kmp_init_gtid) { |

