diff options
Diffstat (limited to 'qemu-timer.c')
| -rw-r--r-- | qemu-timer.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/qemu-timer.c b/qemu-timer.c index 98d9d1bc0b..5741f0d0e0 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -22,13 +22,9 @@ * THE SOFTWARE. */ -#include "sysemu/sysemu.h" -#include "monitor/monitor.h" -#include "ui/console.h" - -#include "hw/hw.h" - +#include "qemu/main-loop.h" #include "qemu/timer.h" + #ifdef CONFIG_POSIX #include <pthread.h> #endif @@ -342,6 +338,12 @@ void timer_init_tl(QEMUTimer *ts, ts->expire_time = -1; } +void timer_deinit(QEMUTimer *ts) +{ + assert(ts->expire_time == -1); + ts->timer_list = NULL; +} + void timer_free(QEMUTimer *ts) { g_free(ts); @@ -398,9 +400,11 @@ void timer_del(QEMUTimer *ts) { QEMUTimerList *timer_list = ts->timer_list; - qemu_mutex_lock(&timer_list->active_timers_lock); - timer_del_locked(timer_list, ts); - qemu_mutex_unlock(&timer_list->active_timers_lock); + if (timer_list) { + qemu_mutex_lock(&timer_list->active_timers_lock); + timer_del_locked(timer_list, ts); + qemu_mutex_unlock(&timer_list->active_timers_lock); + } } /* modify the current timer so that it will be fired when current_time |