rculfhash: fix uniquely add vs cds_lfht_next observation semantic
[urcu.git] / urcu-call-rcu-impl.h
index d09adb1bc431a55923d3bbeb3904939f3344e460..182e9b15bd96552ed5e4fb8125bee02da04a8715 100644 (file)
@@ -396,6 +396,10 @@ struct call_rcu_data *create_call_rcu_data(unsigned long flags,
  * the caller's responsibility to dispose of the removed structure.
  * Use get_cpu_call_rcu_data() to obtain a pointer to the old structure
  * (prior to NULLing it out, of course).
+ *
+ * The caller must wait for a grace-period to pass between return from
+ * set_cpu_call_rcu_data() and call to call_rcu_data_free() passing the
+ * previous call rcu data as argument.
  */
 
 int set_cpu_call_rcu_data(int cpu, struct call_rcu_data *crdp)
@@ -612,6 +616,10 @@ void call_rcu(struct rcu_head *head,
  *
  * We also silently refuse to free NULL pointers.  This simplifies
  * the calling code.
+ *
+ * The caller must wait for a grace-period to pass between return from
+ * set_cpu_call_rcu_data() and call to call_rcu_data_free() passing the
+ * previous call rcu data as argument.
  */
 void call_rcu_data_free(struct call_rcu_data *crdp)
 {
@@ -669,6 +677,7 @@ void free_all_cpu_call_rcu_data(void)
                        fprintf(stderr, "[error] liburcu: unable to allocate per-CPU pointer array\n");
                }
                warned = 1;
+               return;
        }
 
        for (cpu = 0; cpu < maxcpus; cpu++) {
This page took 0.023004 seconds and 4 git commands to generate.