aboutsummaryrefslogtreecommitdiff
path: root/libgomp/task.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2011-11-30 15:14:13 +1030
committerAlan Modra <amodra@gcc.gnu.org>2011-11-30 15:14:13 +1030
commitab6dd406ba58df404717fa956605ad8ef3907e3a (patch)
treee4a5194d50d93bce1bed4e9d8b3ca217c3d12b9e /libgomp/task.c
parentb40c885f183cb7d0b0970494220370699f93c2ae (diff)
downloadgcc-ab6dd406ba58df404717fa956605ad8ef3907e3a.zip
gcc-ab6dd406ba58df404717fa956605ad8ef3907e3a.tar.gz
gcc-ab6dd406ba58df404717fa956605ad8ef3907e3a.tar.bz2
re PR libgomp/51298 (libgomp team_barrier locking failures)
PR libgomp/51298 * config/linux/bar.h: Use atomic rather than sync builtins. * config/linux/bar.c: Likewise. Add missing acquire synchronisation on generation field. * task.c (gomp_barrier_handle_tasks): Regain lock so as to not double unlock. From-SVN: r181833
Diffstat (limited to 'libgomp/task.c')
-rw-r--r--libgomp/task.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libgomp/task.c b/libgomp/task.c
index b93f77a..d3d72663f 100644
--- a/libgomp/task.c
+++ b/libgomp/task.c
@@ -273,6 +273,7 @@ gomp_barrier_handle_tasks (gomp_barrier_state_t state)
gomp_team_barrier_done (&team->barrier, state);
gomp_mutex_unlock (&team->task_lock);
gomp_team_barrier_wake (&team->barrier, 0);
+ gomp_mutex_lock (&team->task_lock);
}
}
}