summaryrefslogtreecommitdiff
path: root/libgomp/task.c
diff options
context:
space:
mode:
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-30 04:44:13 +0000
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-30 04:44:13 +0000
commit7262c91fbd64f7e78cfeccec212f61a55821f68c (patch)
treee4a5194d50d93bce1bed4e9d8b3ca217c3d12b9e /libgomp/task.c
parenta28ddb67e7d93f5ba095c28af9a14b991b2cbcfd (diff)
downloadgcc-7262c91fbd64f7e78cfeccec212f61a55821f68c.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181833 138bc75d-0d04-0410-961f-82ee72b054a4
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 b93f77a3816..d3d72663f35 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);
}
}
}