diff options
author | Joost VandeVondele <vondele@gcc.gnu.org> | 2015-08-24 11:01:25 +0000 |
---|---|---|
committer | Joost VandeVondele <vondele@gcc.gnu.org> | 2015-08-24 11:01:25 +0000 |
commit | bfe7ac89a0be108eaccfa277db28ed6141a3d5af (patch) | |
tree | 9ce340525056994200979fde5121c358e4f37981 /libgomp/iter_ull.c | |
parent | d485982286692075d175dbbcf17d00431106ce96 (diff) | |
download | gcc-bfe7ac89a0be108eaccfa277db28ed6141a3d5af.zip gcc-bfe7ac89a0be108eaccfa277db28ed6141a3d5af.tar.gz gcc-bfe7ac89a0be108eaccfa277db28ed6141a3d5af.tar.bz2 |
re PR libgomp/66761 (libgomp: ThreadSanitizer: data race in libgomp)
PR libgomp/66761
PR libgomp/67303
* iter.c (gomp_iter_dynamic_next): Employ an atomic load.
(gomp_iter_guided_next): Idem.
* iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
(gomp_iter_ull_guided_next): Idem.
* config/linux/wait.h (do_spin): Idem.
From-SVN: r227119
Diffstat (limited to 'libgomp/iter_ull.c')
-rw-r--r-- | libgomp/iter_ull.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libgomp/iter_ull.c b/libgomp/iter_ull.c index b1cad84..1c2d118 100644 --- a/libgomp/iter_ull.c +++ b/libgomp/iter_ull.c @@ -219,7 +219,7 @@ gomp_iter_ull_dynamic_next (gomp_ull *pstart, gomp_ull *pend) } } - start = ws->next_ull; + start = __atomic_load_n (&ws->next_ull, MEMMODEL_RELAXED); while (1) { gomp_ull left = end - start; @@ -305,7 +305,7 @@ gomp_iter_ull_guided_next (gomp_ull *pstart, gomp_ull *pend) gomp_ull start, end, nend, incr; gomp_ull chunk_size; - start = ws->next_ull; + start = __atomic_load_n (&ws->next_ull, MEMMODEL_RELAXED); end = ws->end_ull; incr = ws->incr_ull; chunk_size = ws->chunk_size_ull; |