aboutsummaryrefslogtreecommitdiff
path: root/helgrind/tests
diff options
context:
space:
mode:
authorbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-03-08 18:58:06 +0000
committerbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-03-08 18:58:06 +0000
commitd26fcc04b2eb1207d101e00d092de375b70862cb (patch)
treecd3b39ebde7f62f660e5fe1c0cdd029710370fae /helgrind/tests
parentf595b13d38d3929377734c1c9695beb5b8282dc2 (diff)
downloadvalgrind-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.c6
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);
}