diff --git a/openmp/runtime/src/kmp_lock.cpp b/openmp/runtime/src/kmp_lock.cpp --- a/openmp/runtime/src/kmp_lock.cpp +++ b/openmp/runtime/src/kmp_lock.cpp @@ -1246,6 +1246,9 @@ if (this_thr->th.th_next_waiting != 0) __kmp_dump_queuing_lock(this_thr, gtid, lck, *head_id_p, *tail_id_p); #endif + // Make sure all updates to thread structures are complete before + // assertion check. + KMP_MB(); KMP_DEBUG_ASSERT(this_thr->th.th_next_waiting == 0); KA_TRACE(1000, ("__kmp_acquire_queuing_lock: lck:%p, T#%d exiting: after " "waiting on queue\n",