Commit ca5a2a4b authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Aurelien Jarno
Browse files

fix race between timer firing vs. alarm_timer->pending = 0

The period for Win32 timers is very short and always the same
independent of dynticks, so it's possible that the timer fires
before qemu_run_all_timers has reset alarm_timer->pending to zero.
Reset alarm_timer->pending before rearming.
Signed-off-by: default avatarPaolo Bonzini <>
Signed-off-by: default avatarAurelien Jarno <>
parent 06b611c4
......@@ -706,14 +706,14 @@ void configure_icount(const char *option)
void qemu_run_all_timers(void)
alarm_timer->pending = 0;
/* rearm timer, if not periodic */
if (alarm_timer->expired) {
alarm_timer->expired = 0;
alarm_timer->pending = 0;
/* vm time timers */
if (vm_running) {
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment