vl: use QLIST_FOREACH_SAFE to visit change state handlers
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 9 Sep 2014 12:12:26 +0000 (14:12 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 10 Sep 2014 10:08:33 +0000 (12:08 +0200)
This lets a handler delete itself.

Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
vl.c

diff --git a/vl.c b/vl.c
index 9c9acf5..15aea95 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -1721,11 +1721,11 @@ void qemu_del_vm_change_state_handler(VMChangeStateEntry *e)
 
 void vm_state_notify(int running, RunState state)
 {
-    VMChangeStateEntry *e;
+    VMChangeStateEntry *e, *next;
 
     trace_vm_state_notify(running, state);
 
-    for (e = vm_change_state_head.lh_first; e; e = e->entries.le_next) {
+    QLIST_FOREACH_SAFE(e, &vm_change_state_head, entries, next) {
         e->cb(e->opaque, running, state);
     }
 }