From 3a720b14b9e09f8553832b835ede9933b70fe9a9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 10 Mar 2010 11:38:44 +0100 Subject: [PATCH] remove qemu_rearm_alarm_timer from main loop Make the timer subsystem register its own callback instead. Signed-off-by: Paolo Bonzini Signed-off-by: Anthony Liguori --- vl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vl.c b/vl.c index 0b75cfda75..788b334408 100644 --- a/vl.c +++ b/vl.c @@ -1417,6 +1417,12 @@ static void win32_rearm_timer(struct qemu_alarm_timer *t) #endif /* _WIN32 */ +static void alarm_timer_on_change_state_rearm(void *opaque, int running, int reason) +{ + if (running) + qemu_rearm_alarm_timer((struct qemu_alarm_timer *) opaque); +} + static int init_timer_alarm(void) { struct qemu_alarm_timer *t = NULL; @@ -1438,6 +1444,7 @@ static int init_timer_alarm(void) /* first event is at time 0 */ t->pending = 1; alarm_timer = t; + qemu_add_vm_change_state_handler(alarm_timer_on_change_state_rearm, t); return 0; @@ -3080,7 +3087,6 @@ void vm_start(void) cpu_enable_ticks(); vm_running = 1; vm_state_notify(1, 0); - qemu_rearm_alarm_timer(alarm_timer); resume_all_vcpus(); } }