diff options
Diffstat (limited to 'Carpet/LoopControl')
-rw-r--r-- | Carpet/LoopControl/src/loopcontrol.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/Carpet/LoopControl/src/loopcontrol.cc b/Carpet/LoopControl/src/loopcontrol.cc index c8ac8f99e..398ed91de 100644 --- a/Carpet/LoopControl/src/loopcontrol.cc +++ b/Carpet/LoopControl/src/loopcontrol.cc @@ -279,15 +279,14 @@ namespace { if (omp_get_num_threads() == 1) return 1; static int num_smt_threads = -1; if (CCTK_BUILTIN_EXPECT(num_smt_threads<0, false)) { -#pragma omp barrier - (void)0; // PGI compiler needs this -#pragma omp master - if (CCTK_IsFunctionAliased("GetNumSMTThreads")) { - num_smt_threads = GetNumSMTThreads(); - } else { - num_smt_threads = 1; +#pragma omp critical + if (num_smt_threads<0) { + if (CCTK_IsFunctionAliased("GetNumSMTThreads")) { + num_smt_threads = GetNumSMTThreads(); + } else { + num_smt_threads = 1; + } } -#pragma omp barrier } return num_smt_threads; } |