#include <urcu.h>
#include <urcu/cds.h>
+#define POISON_PTR ((void *) 0x42UL)
+
/*
* External synchronization used.
*/
if (snode) {
struct test *node;
+ snode->next = POISON_PTR;
node = caa_container_of(snode,
struct test, list);
if (sync == TEST_SYNC_RCU)
cds_lfs_for_each_safe(head, snode, n) {
struct test *node;
+ snode->next = POISON_PTR;
node = caa_container_of(snode, struct test, list);
if (sync == TEST_SYNC_RCU)
call_rcu(&node->rcu, free_node_cb);
for (i = 0; i < duration; i++) {
sleep(1);
- if (verbose_mode)
- write (1, ".", 1);
+ if (verbose_mode) {
+ fwrite(".", sizeof(char), 1, stdout);
+ fflush(stdout);
+ }
}
test_stop = 1;
tot_successful_dequeues + end_dequeues);
free_all_cpu_call_rcu_data();
+ cds_lfs_destroy(&s);
free(count_enqueuer);
free(count_dequeuer);
free(tid_enqueuer);