[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/18] vl.c: add deleted flag for deleting the handl
From: |
OHMURA Kei |
Subject: |
[Qemu-devel] [PATCH 05/18] vl.c: add deleted flag for deleting the handler. |
Date: |
Mon, 25 Apr 2011 20:00:44 +0900 |
From: Yoshiaki Tamura <address@hidden>
Make deleting handlers robust against deletion of any elements in a
handler by using a deleted flag like in file descriptors.
Signed-off-by: Yoshiaki Tamura <address@hidden>
Signed-off-by: OHMURA Kei <address@hidden>
---
vl.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/vl.c b/vl.c
index 68c3b53..a18792d 100644
--- a/vl.c
+++ b/vl.c
@@ -1096,6 +1096,7 @@ static void nographic_update(void *opaque)
struct vm_change_state_entry {
VMChangeStateHandler *cb;
void *opaque;
+ int deleted;
QLIST_ENTRY (vm_change_state_entry) entries;
};
@@ -1116,18 +1117,22 @@ VMChangeStateEntry
*qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
void qemu_del_vm_change_state_handler(VMChangeStateEntry *e)
{
- QLIST_REMOVE (e, entries);
- qemu_free (e);
+ e->deleted = 1;
}
void vm_state_notify(int running, int reason)
{
- VMChangeStateEntry *e;
+ VMChangeStateEntry *e, *ne;
trace_vm_state_notify(running, reason);
- for (e = vm_change_state_head.lh_first; e; e = e->entries.le_next) {
- e->cb(e->opaque, running, reason);
+ QLIST_FOREACH_SAFE(e, &vm_change_state_head, entries, ne) {
+ if (e->deleted) {
+ QLIST_REMOVE(e, entries);
+ qemu_free(e);
+ } else {
+ e->cb(e->opaque, running, reason);
+ }
}
}
--
1.7.0.2
- [Qemu-devel] [PATCH 00/18] Kemari for KVM v0.2.14, OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 05/18] vl.c: add deleted flag for deleting the handler.,
OHMURA Kei <=
- [Qemu-devel] [PATCH 11/18] ioport: insert event_tap_ioport() to ioport_write()., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 13/18] net: insert event-tap to qemu_send_packet() and qemu_sendv_packet_async()., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 08/18] savevm: introduce util functions to control ft_trans_file from savevm layer., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 06/18] virtio: decrement last_avail_idx with inuse before saving., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 15/18] savevm: introduce qemu_savevm_trans_{begin, commit}., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 17/18] migration-tcp: modify tcp_accept_incoming_migration() to handle ft_mode, and add a hack not to close fd when ft_mode is enabled., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 03/18] Introduce qemu_loadvm_state_no_header() and make qemu_loadvm_state() a wrapper., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 12/18] Insert event_tap_mmio() to cpu_physical_memory_rw() in exec.c., OHMURA Kei, 2011/04/25
- [Qemu-devel] [PATCH 18/18] Introduce "kemari:" to enable FT migration mode (Kemari)., OHMURA Kei, 2011/04/25