projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rculfhash: garbage collection scheme
[urcu.git]
/
tests
/
test_urcu_hash.c
diff --git
a/tests/test_urcu_hash.c
b/tests/test_urcu_hash.c
index 59356568bb2602cedea8c98e847f0a9dfe829862..ba8f9e93c2697e126786c7d16e9cd9e7bc3f339c 100644
(file)
--- a/
tests/test_urcu_hash.c
+++ b/
tests/test_urcu_hash.c
@@
-38,7
+38,7
@@
#endif
#define HASH_SIZE 32
#endif
#define HASH_SIZE 32
-#define RAND_POOL 1000
+#define RAND_POOL 1000
0
/* Make this big enough to include the POWER5+ L3 cacheline size of 256B */
#define CACHE_LINE_SIZE 4096
/* Make this big enough to include the POWER5+ L3 cacheline size of 256B */
#define CACHE_LINE_SIZE 4096
@@
-403,11
+403,14
@@
void *thr_writer(void *_count)
rcu_read_lock();
ht_node_init(node,
(void *)(unsigned long)(rand_r(&rand_lookup) % RAND_POOL),
rcu_read_lock();
ht_node_init(node,
(void *)(unsigned long)(rand_r(&rand_lookup) % RAND_POOL),
- sizeof(void *),
- (void *) 0x42);
- ht_add(test_ht, node);
+ sizeof(void *));
+ ret = ht_add_unique(test_ht, node);
rcu_read_unlock();
rcu_read_unlock();
- nr_add++;
+ if (ret) {
+ free(node);
+ nr_addexist++;
+ } else
+ nr_add++;
} else {
/* May delete */
rcu_read_lock();
} else {
/* May delete */
rcu_read_lock();
@@
-591,8
+594,13
@@
int main(int argc, char **argv)
tot_writes += count_writer[i];
}
ret = ht_destroy(test_ht);
tot_writes += count_writer[i];
}
ret = ht_destroy(test_ht);
- if (ret)
- printf("WARNING: nodes left in the hash table upon destroy\n");
+ if (ret) {
+ unsigned long count, removed;
+
+ ht_count_nodes(test_ht, &count, &removed);
+ printf("WARNING: nodes left in the hash table upon destroy: "
+ "%lu nodes + %lu logically removed.\n", count, removed);
+ }
printf_verbose("final delete: %d items\n", ret);
printf_verbose("total number of reads : %llu, writes %llu\n", tot_reads,
printf_verbose("final delete: %d items\n", ret);
printf_verbose("total number of reads : %llu, writes %llu\n", tot_reads,
This page took
0.034822 seconds
and
4
git commands to generate.