X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Ftest_urcu_lfq.c;h=1bbaf3cfd504a2abd0ead6e724f2b514c079dff5;hp=39e0351abb27672f5d6677e436ebaeebc88567b3;hb=747b5930591527b65ad737ba609a59106ec2e89b;hpb=07c6adebacc36efe566e26ae671be237dd20feec diff --git a/tests/test_urcu_lfq.c b/tests/test_urcu_lfq.c index 39e0351..1bbaf3c 100644 --- a/tests/test_urcu_lfq.c +++ b/tests/test_urcu_lfq.c @@ -243,14 +243,15 @@ void *thr_dequeuer(void *_count) for (;;) { struct cds_lfq_node_rcu *qnode; - struct test *node; rcu_read_lock(); qnode = cds_lfq_dequeue_rcu(&q); - node = caa_container_of(qnode, struct test, list); rcu_read_unlock(); - if (node) { + if (qnode) { + struct test *node; + + node = caa_container_of(qnode, struct test, list); call_rcu(&node->rcu, free_node_cb); URCU_TLS(nr_successful_dequeues)++; }