qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/2] Add TAILQ_FOREACH_SAFE


From: Jan Kiszka
Subject: [Qemu-devel] [PATCH 1/2] Add TAILQ_FOREACH_SAFE
Date: Wed, 19 Nov 2008 14:48:57 +0100
User-agent: StGIT/0.14.2

Add TAILQ iterator that allows to safely remove elements while walking
the list.

Signed-off-by: Jan Kiszka <address@hidden>
---

 sys-queue.h |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/sys-queue.h b/sys-queue.h
index 3d0773e..b92a77f 100644
--- a/sys-queue.h
+++ b/sys-queue.h
@@ -210,6 +210,12 @@ struct {                                                   
             \
                 (var);                                                  \
                 (var) = ((var)->field.tqe_next))
 
+#define TAILQ_FOREACH_SAFE(var, head, field, next_var)                  \
+        for ((var) = ((head)->tqh_first);                               \
+                (var) ? ({ (next_var) = ((var)->field.tqe_next); 1; })  \
+                      : 0;                                              \
+                (var) = (next_var))
+
 #define TAILQ_FOREACH_REVERSE(var, head, headname, field)               \
         for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last));   
 \
                 (var);                                                  \





reply via email to

[Prev in Thread] Current Thread [Next in Thread]