projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add local reclaim tests
[urcu.git]
/
test_urcu_gc.c
diff --git
a/test_urcu_gc.c
b/test_urcu_gc.c
index 66b714ba072f786e1bc519382543e036f03df50a..12ea1811173f3520d36b420de05c09da17e280a2 100644
(file)
--- 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;
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;
struct test_array *new, *old;
+#endif
printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
"writer", pthread_self(), (unsigned long)gettid());
printf_verbose("thread_begin %s, thread id : %lx, tid %lu\n",
"writer", pthread_self(), (unsigned long)gettid());
@@
-264,14
+268,11
@@
void *thr_writer(void *data)
smp_mb();
for (;;) {
smp_mb();
for (;;) {
+#ifndef TEST_LOCAL_GC
new = malloc(sizeof(*new));
new = malloc(sizeof(*new));
- rcu_copy_mutex_lock();
- old = test_rcu_pointer;
- if (old)
- assert(old->a == 8);
new->a = 8;
old = rcu_xchg_pointer(&test_rcu_pointer, new);
new->a = 8;
old = rcu_xchg_pointer(&test_rcu_pointer, new);
- rcu_copy_mutex_unlock();
+#endif
rcu_gc_reclaim(wtidx, old);
nr_writes++;
if (unlikely(!test_duration_write()))
rcu_gc_reclaim(wtidx, old);
nr_writes++;
if (unlikely(!test_duration_write()))
This page took
0.023767 seconds
and
4
git commands to generate.