Revision fbdc14eb
b/qemu-timer.c | ||
---|---|---|
273 | 273 |
|
274 | 274 |
void qemu_clock_enable(QEMUClock *clock, int enabled) |
275 | 275 |
{ |
276 |
bool old = clock->enabled; |
|
276 | 277 |
clock->enabled = enabled; |
278 |
if (enabled && !old) { |
|
279 |
qemu_rearm_alarm_timer(alarm_timer); |
|
280 |
} |
|
277 | 281 |
} |
278 | 282 |
|
279 | 283 |
int64_t qemu_clock_has_timers(QEMUClock *clock) |
... | ... | |
806 | 810 |
|
807 | 811 |
#endif /* _WIN32 */ |
808 | 812 |
|
809 |
static void alarm_timer_on_change_state_rearm(void *opaque, int running, |
|
810 |
RunState state) |
|
811 |
{ |
|
812 |
if (running) |
|
813 |
qemu_rearm_alarm_timer((struct qemu_alarm_timer *) opaque); |
|
814 |
} |
|
815 |
|
|
816 | 813 |
static void quit_timers(void) |
817 | 814 |
{ |
818 | 815 |
struct qemu_alarm_timer *t = alarm_timer; |
... | ... | |
842 | 839 |
atexit(quit_timers); |
843 | 840 |
t->pending = 1; |
844 | 841 |
alarm_timer = t; |
845 |
qemu_add_vm_change_state_handler(alarm_timer_on_change_state_rearm, t); |
|
846 | 842 |
|
847 | 843 |
return 0; |
848 | 844 |
|
Also available in: Unified diff