[Openmp-commits] [openmp] r237916 - Fix task team synchronization

Jonathan Peyton jonathan.l.peyton at intel.com
Thu May 21 10:20:01 PDT 2015

Author: jlpeyton
Date: Thu May 21 12:20:01 2015
New Revision: 237916

URL: http://llvm.org/viewvc/llvm-project?rev=237916&view=rev
Fix task team synchronization 

The fix simply syncs up the new threads to have the same task_state and
task_team as the old threads.  The master thread is skipped,
because it shouldn't at this point have the team's task_team value yet
-- it should still have parent_team's task_team.  It gets pointed at
the new team's task_team later, after __kmp_allocate_team returns, and
the master has stored a memo of it's old task_state.


Modified: openmp/trunk/runtime/src/kmp_runtime.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_runtime.c?rev=237916&r1=237915&r2=237916&view=diff
--- openmp/trunk/runtime/src/kmp_runtime.c (original)
+++ openmp/trunk/runtime/src/kmp_runtime.c Thu May 21 12:20:01 2015
@@ -5060,6 +5060,7 @@ __kmp_allocate_team( kmp_root_t *root, i
                 for (f=0;  f < team->t.t_nproc; ++f) {
                     __kmp_initialize_info( team->t.t_threads[ f ], team, f, __kmp_gtid_from_tid( f, team ) );
                     team->t.t_threads[f]->th.th_task_state = old_state;
+                    team->t.t_threads[f]->th.th_task_team = team->t.t_task_team[old_state];

More information about the Openmp-commits mailing list