rcuja test: use poison_free
[userspace-rcu.git] / tests / test_urcu_ja.c
index b3e6ed078fca822e23ec5f290762f5307af365ad..d973220ce7fb15f8a6644e83958f6f7573690201 100644 (file)
@@ -129,7 +129,7 @@ void free_node_cb(struct rcu_head *head)
 {
        struct ja_test_node *node =
                caa_container_of(head, struct ja_test_node, node.head);
-       free(node);
+       poison_free(node);
 }
 
 #if 0
@@ -609,7 +609,7 @@ void *test_ja_rw_thr_reader(void *_count)
                } else {
                        URCU_TLS(lookup_ok)++;
                }
-               debug_yield_read();
+               rcu_debug_yield_read();
                if (caa_unlikely(rduration))
                        loop_sleep(rduration);
                rcu_read_unlock();
@@ -681,15 +681,16 @@ void *test_ja_rw_thr_writer(void *_count)
                        node = cds_hlist_first_entry_rcu(&head, struct ja_test_node, node.list);
                        if (node) {
                                ret = cds_ja_del(test_ja, key, &node->node);
-                               if (ret) {
+                               if (!ret) {
                                        call_rcu(&node->node.head, free_node_cb);
-                                       URCU_TLS(nr_delnoent)++;
-                               } else {
                                        URCU_TLS(nr_del)++;
+                               } else {
+                                       URCU_TLS(nr_delnoent)++;
                                }
                        } else {
                                URCU_TLS(nr_delnoent)++;
                        }
+                       rcu_read_unlock();
                }
 
                URCU_TLS(nr_writes)++;
This page took 0.024646 seconds and 4 git commands to generate.