From: Mathieu Desnoyers Date: Fri, 21 Jun 2013 20:51:14 +0000 (-0400) Subject: doc/examples: update cds_wfs_pop_all_blocking X-Git-Tag: v0.8.0~40 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=bb641aa3882c0a345c98a75d4784b3b7ee6211ab;p=userspace-rcu.git doc/examples: update cds_wfs_pop_all_blocking Signed-off-by: Mathieu Desnoyers --- diff --git a/doc/examples/wfstack/cds_wfs_pop_all_blocking.c b/doc/examples/wfstack/cds_wfs_pop_all_blocking.c index 52bf0c0..766f07f 100644 --- a/doc/examples/wfstack/cds_wfs_pop_all_blocking.c +++ b/doc/examples/wfstack/cds_wfs_pop_all_blocking.c @@ -33,7 +33,7 @@ int main(int argc, char **argv) struct cds_wfs_stack mystack; /* Stack */ unsigned int i; int ret = 0; - struct cds_wfs_node *snode; + struct cds_wfs_node *snode, *sn; struct cds_wfs_head *shead; cds_wfs_init(&mystack); @@ -63,13 +63,15 @@ int main(int argc, char **argv) /* * Show the stack content, iterate in reverse order of push, - * from newest to oldest. + * from newest to oldest. Use cds_wfs_for_each_blocking_safe() + * so we can free the nodes as we iterate. */ printf("mystack content:"); - cds_wfs_for_each_blocking(shead, snode) { + cds_wfs_for_each_blocking_safe(shead, snode, sn) { struct mynode *node = caa_container_of(snode, struct mynode, node); printf(" %d", node->value); + free(node); } printf("\n"); end: