Fix: tests: invoke destroy APIs for queues/stacks
[urcu.git] / urcu / wfqueue.h
index 3d32b05c580c4634fd98a373cf86514228d3adba..2ba86248aa7095c4ca83e94b13769c073507a58c 100644 (file)
 extern "C" {
 #endif
 
+#ifndef CDS_WFQ_DEPRECATED
+#define CDS_WFQ_DEPRECATED     \
+       CDS_DEPRECATED("urcu/wfqueue.h is deprecated. Please use urcu/wfcqueue.h instead.")
+#endif
+
 /*
  * Queue with wait-free enqueue/blocking dequeue.
  * This implementation adds a dummy head node when the queue is empty to ensure
@@ -40,31 +45,76 @@ extern "C" {
  * Paul E. McKenney.
  */
 
-struct wfq_node {
-       struct wfq_node *next;
+struct cds_wfq_node {
+       struct cds_wfq_node *next;
 };
 
-struct wfq_queue {
-       struct wfq_node *head, **tail;
-       struct wfq_node dummy;  /* Dummy node */
+struct cds_wfq_queue {
+       struct cds_wfq_node *head, **tail;
+       struct cds_wfq_node dummy;      /* Dummy node */
        pthread_mutex_t lock;
 };
 
 #ifdef _LGPL_SOURCE
 
-#include <urcu/wfqueue-static.h>
+#include <urcu/static/wfqueue.h>
+
+static inline CDS_WFQ_DEPRECATED
+void cds_wfq_node_init(struct cds_wfq_node *node)
+{
+       _cds_wfq_node_init(node);
+}
+
+static inline CDS_WFQ_DEPRECATED
+void cds_wfq_init(struct cds_wfq_queue *q)
+{
+       _cds_wfq_init(q);
+}
+
+static inline CDS_WFQ_DEPRECATED
+void cds_wfq_destroy(struct cds_wfq_queue *q)
+{
+       _cds_wfq_destroy(q);
+}
+
+static inline CDS_WFQ_DEPRECATED
+void cds_wfq_enqueue(struct cds_wfq_queue *q, struct cds_wfq_node *node)
+{
+       _cds_wfq_enqueue(q, node);
+}
 
-#define wfq_node_init          _wfq_node_init
-#define wfq_init               _wfq_init
-#define wfq_enqueue            _wfq_enqueue
-#define wfq_dequeue_blocking   _wfq_dequeue_blocking
+static inline CDS_WFQ_DEPRECATED
+struct cds_wfq_node *__cds_wfq_dequeue_blocking(struct cds_wfq_queue *q)
+{
+       return ___cds_wfq_dequeue_blocking(q);
+}
+
+static inline CDS_WFQ_DEPRECATED
+struct cds_wfq_node *cds_wfq_dequeue_blocking(struct cds_wfq_queue *q)
+{
+       return _cds_wfq_dequeue_blocking(q);
+}
 
 #else /* !_LGPL_SOURCE */
 
-extern void wfq_node_init(struct wfq_node *node);
-extern void wfq_init(struct wfq_queue *q);
-extern void wfq_enqueue(struct wfq_queue *q, struct wfq_node *node);
-extern struct wfq_node *wfq_dequeue_blocking(struct wfq_queue *q);
+extern CDS_WFQ_DEPRECATED
+void cds_wfq_node_init(struct cds_wfq_node *node);
+
+extern CDS_WFQ_DEPRECATED
+void cds_wfq_init(struct cds_wfq_queue *q);
+
+extern CDS_WFQ_DEPRECATED
+void cds_wfq_destroy(struct cds_wfq_queue *q);
+
+extern CDS_WFQ_DEPRECATED
+void cds_wfq_enqueue(struct cds_wfq_queue *q, struct cds_wfq_node *node);
+
+/* __cds_wfq_dequeue_blocking: caller ensures mutual exclusion between dequeues */
+extern CDS_WFQ_DEPRECATED
+struct cds_wfq_node *__cds_wfq_dequeue_blocking(struct cds_wfq_queue *q);
+
+extern CDS_WFQ_DEPRECATED
+struct cds_wfq_node *cds_wfq_dequeue_blocking(struct cds_wfq_queue *q);
 
 #endif /* !_LGPL_SOURCE */
 
This page took 0.022937 seconds and 4 git commands to generate.