diff options
author | bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-03-08 18:58:06 +0000 |
---|---|---|
committer | bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-03-08 18:58:06 +0000 |
commit | d26fcc04b2eb1207d101e00d092de375b70862cb (patch) | |
tree | cd3b39ebde7f62f660e5fe1c0cdd029710370fae /helgrind/tests | |
parent | f595b13d38d3929377734c1c9695beb5b8282dc2 (diff) | |
download | valgrind-d26fcc04b2eb1207d101e00d092de375b70862cb.tar.gz |
Fixed an unintended data race in the bar_trivial test program.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9325 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'helgrind/tests')
-rw-r--r-- | helgrind/tests/bar_trivial.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/helgrind/tests/bar_trivial.c b/helgrind/tests/bar_trivial.c index 8c221ae8e..26a6b37c7 100644 --- a/helgrind/tests/bar_trivial.c +++ b/helgrind/tests/bar_trivial.c @@ -16,7 +16,7 @@ pthread_barrier_t bar; void* child_fn ( void* arg ) { - long r, n = (long)arg; + long r, n = *(long*)arg; if (n == 1) x++; @@ -36,12 +36,14 @@ int main ( void ) { long i, r; pthread_t thr[NTHR]; + long thread_arg[NTHR]; r = pthread_barrier_init(&bar, NULL, NTHR); assert(!r); for (i = 0; i < NTHR; i++) { - r = pthread_create(&thr[i], NULL, child_fn, (void*)i); + thread_arg[i] = i; + r = pthread_create(&thr[i], NULL, child_fn, &(thread_arg[i])); assert(!r); } |