+// SPDX-FileCopyrightText: 2013 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+//
+// SPDX-License-Identifier: MIT
+
/*
- * Copyright (C) 2013 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- *
* This example shows how to replace a node within a linked-list safely
* against concurrent RCU traversals.
*/
#include <stdio.h>
-#include <urcu.h> /* Userspace RCU flavor */
+#include <urcu/urcu-memb.h> /* Userspace RCU flavor */
#include <urcu/rculist.h> /* RCU list */
#include <urcu/compiler.h> /* For CAA_ARRAY_SIZE */
free(node);
}
-int main(int argc, char **argv)
+int main(void)
{
int values[] = { -5, 42, 36, 24, };
CDS_LIST_HEAD(mylist); /* Defines an empty list head */
/* Replacement node value is negated original value. */
new_node->value = -node->value;
cds_list_replace_rcu(&node->node, &new_node->node);
- call_rcu(&node->rcu_head, free_node_rcu);
+ urcu_memb_call_rcu(&node->rcu_head, free_node_rcu);
}
/*