wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 5 Dec 2012 14:01:21 +0000 (09:01 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 5 Dec 2012 14:01:21 +0000 (09:01 -0500)
cds_wfs_first never needs to block. This operation can be used to check
if the stack returned by pop_all is empty or not, so it is quite
interesting to have a fully non-blocking semantic for all of
enqueue/pop_all/first operations. Only cds_wfs_next may block.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
tests/test_urcu_wfs.c
urcu/static/wfstack.h
urcu/wfstack.h
wfstack.c

index 1c852b9dd0abce809d5e7b679300673c88bbe469..ec9e198dd91319fc9a289881edd6767e47d0680c 100644 (file)
@@ -256,7 +256,7 @@ static void do_test_pop_all(enum test_sync sync)
                cds_wfs_pop_unlock(&s);
 
        /* Check if empty */
-       if (cds_wfs_first_blocking(head) == NULL)
+       if (cds_wfs_first(head) == NULL)
                return;
 
        URCU_TLS(nr_pop_all)++;
index 1a0e4d7475bab6beca8ecf3dba2b242b88ae6634..18bf763c97a69f5f04acf31409e0fd3934215f63 100644 (file)
@@ -283,7 +283,7 @@ _cds_wfs_pop_all_blocking(struct cds_wfs_stack *s)
 }
 
 /*
- * cds_wfs_first_blocking: get first node of a popped stack.
+ * cds_wfs_first: get first node of a popped stack.
  *
  * Content written into the node before enqueue is guaranteed to be
  * consistent, but no other memory ordering is ensured.
@@ -295,7 +295,7 @@ _cds_wfs_pop_all_blocking(struct cds_wfs_stack *s)
  * Returns NULL if popped stack is empty, top stack node otherwise.
  */
 static inline struct cds_wfs_node *
-_cds_wfs_first_blocking(struct cds_wfs_head *head)
+_cds_wfs_first(struct cds_wfs_head *head)
 {
        if (___cds_wfs_end(head))
                return NULL;
index 20d1882c867b979910ad6000b8c3b64a8879a0c7..0adf392f7b317210befb027949d6d6205a133e53 100644 (file)
@@ -98,7 +98,7 @@ struct cds_wfs_stack {
  * For iteration on cds_wfs_head returned by __cds_wfs_pop_all or
  * cds_wfs_pop_all_blocking.
  */
-#define cds_wfs_first_blocking         _cds_wfs_first_blocking
+#define cds_wfs_first                  _cds_wfs_first
 #define cds_wfs_next_blocking          _cds_wfs_next_blocking
 
 /* Pop locking with internal mutex */
@@ -154,7 +154,7 @@ extern struct cds_wfs_node *cds_wfs_pop_blocking(struct cds_wfs_stack *s);
 extern struct cds_wfs_head *cds_wfs_pop_all_blocking(struct cds_wfs_stack *s);
 
 /*
- * cds_wfs_first_blocking: get first node of a popped stack.
+ * cds_wfs_first: get first node of a popped stack.
  *
  * Content written into the node before enqueue is guaranteed to be
  * consistent, but no other memory ordering is ensured.
@@ -165,7 +165,7 @@ extern struct cds_wfs_head *cds_wfs_pop_all_blocking(struct cds_wfs_stack *s);
  *
  * Returns NULL if popped stack is empty, top stack node otherwise.
  */
-extern struct cds_wfs_node *cds_wfs_first_blocking(struct cds_wfs_head *head);
+extern struct cds_wfs_node *cds_wfs_first(struct cds_wfs_head *head);
 
 /*
  * cds_wfs_next_blocking: get next node of a popped stack.
@@ -245,7 +245,7 @@ extern struct cds_wfs_head *__cds_wfs_pop_all(struct cds_wfs_stack *s);
  * consistent, but no other memory ordering is ensured.
  */
 #define cds_wfs_for_each_blocking(head, node)                  \
-       for (node = cds_wfs_first_blocking(head);               \
+       for (node = cds_wfs_first(head);                        \
                node != NULL;                                   \
                node = cds_wfs_next_blocking(node))
 
@@ -261,7 +261,7 @@ extern struct cds_wfs_head *__cds_wfs_pop_all(struct cds_wfs_stack *s);
  * consistent, but no other memory ordering is ensured.
  */
 #define cds_wfs_for_each_blocking_safe(head, node, n)                     \
-       for (node = cds_wfs_first_blocking(head),                          \
+       for (node = cds_wfs_first(head),                                   \
                        n = (node ? cds_wfs_next_blocking(node) : NULL);   \
                node != NULL;                                              \
                node = n, n = (node ? cds_wfs_next_blocking(node) : NULL))
index 6d41f890b28787b36562618fcb4480e7a9f094c2..f0bae57fe5982d77f1047f91b766464bfdaa6768 100644 (file)
--- a/wfstack.c
+++ b/wfstack.c
@@ -58,9 +58,9 @@ struct cds_wfs_head *cds_wfs_pop_all_blocking(struct cds_wfs_stack *s)
        return _cds_wfs_pop_all_blocking(s);
 }
 
-struct cds_wfs_node *cds_wfs_first_blocking(struct cds_wfs_head *head)
+struct cds_wfs_node *cds_wfs_first(struct cds_wfs_head *head)
 {
-       return _cds_wfs_first_blocking(head);
+       return _cds_wfs_first(head);
 }
 
 struct cds_wfs_node *cds_wfs_next_blocking(struct cds_wfs_node *node)
This page took 0.028147 seconds and 4 git commands to generate.