X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=test_urcu_gc.c;h=12ea1811173f3520d36b420de05c09da17e280a2;hp=6d7d8ca53a10088283d5c0843ab3c0b22bff203c;hb=321e29d945372e2195082b95c7740e1d79ed5b55;hpb=6cca4d0fe58bc9480efb463a2c07345c922f5cee diff --git a/test_urcu_gc.c b/test_urcu_gc.c index 6d7d8ca..12ea181 100644 --- a/test_urcu_gc.c +++ b/test_urcu_gc.c @@ -251,7 +251,11 @@ static void rcu_gc_reclaim(unsigned long wtidx, void *old) void *thr_writer(void *data) { unsigned long wtidx = (unsigned long)data; +#ifdef TEST_LOCAL_GC + struct test_array *old = NULL; +#else struct test_array *new, *old; +#endif printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n", "writer", pthread_self(), (unsigned long)gettid()); @@ -264,9 +268,11 @@ void *thr_writer(void *data) smp_mb(); for (;;) { +#ifndef TEST_LOCAL_GC new = malloc(sizeof(*new)); new->a = 8; old = rcu_xchg_pointer(&test_rcu_pointer, new); +#endif rcu_gc_reclaim(wtidx, old); nr_writes++; if (unlikely(!test_duration_write()))