X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Frculfqueue.h;h=e1d64f13d5229e251674919189c8f28d780c8d50;hp=1582694e92abbcfc5bfc8104f2016fb480f41aff;hb=6e5f88cf94a225b155719046d87bfd32ba47e06a;hpb=dc53e23e90262674fe23889bf1cea28b27288837 diff --git a/urcu/rculfqueue.h b/urcu/rculfqueue.h index 1582694..e1d64f1 100644 --- a/urcu/rculfqueue.h +++ b/urcu/rculfqueue.h @@ -39,6 +39,8 @@ struct cds_lfq_node_rcu { struct cds_lfq_queue_rcu { struct cds_lfq_node_rcu *head, *tail; + void (*queue_call_rcu)(struct rcu_head *head, + void (*func)(struct rcu_head *head)); }; #ifdef _LGPL_SOURCE @@ -78,7 +80,9 @@ struct cds_lfq_queue_rcu { #else /* !_LGPL_SOURCE */ extern void cds_lfq_node_init_rcu(struct cds_lfq_node_rcu *node); -extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q); +extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q, + void queue_call_rcu(struct rcu_head *head, + void (*func)(struct rcu_head *head))); /* * The queue should be emptied before calling destroy. * @@ -87,13 +91,13 @@ extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q); extern int cds_lfq_destroy_rcu(struct cds_lfq_queue_rcu *q); /* - * Acts as a RCU reader. + * Should be called under rcu read lock critical section. */ extern void cds_lfq_enqueue_rcu(struct cds_lfq_queue_rcu *q, struct cds_lfq_node_rcu *node); /* - * Acts as a RCU reader. + * Should be called under rcu read lock critical section. * * The caller must wait for a grace period to pass before freeing the returned * node or modifying the cds_lfq_node_rcu structure.