Message ID | 001001d27bbe$2770c3f0$76524bd0$@ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Di, 2017-01-31 at 15:32 +0300, Pavel Dovgalyuk wrote: > This patch is needed to make this timer deterministic and to use > execution record/replay > > for audio devices. > > > > audio_reset_timer is used in the function > audio_vm_change_state_handler. > > Therefore every time VM is stopped or restarted the timer will be > reset to new timeout. > > Virtual clock does not proceed while VM is stopped. Therefore there is > no need > > in resetting the timeout when VM restarts. Add that to the commit message please. cheers, Gerd
diff --git a/audio/audio.c b/audio/audio.c index c845a44..1ee95a5 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1112,8 +1112,10 @@ static int audio_is_timer_needed (void) static void audio_reset_timer (AudioState *s) { if (audio_is_timer_needed ()) { - timer_mod (s->ts, - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + conf.period.ticks); + if (!timer_pending(s->ts)) { + timer_mod (s->ts, + qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + conf.period.ticks); + } } else { timer_del (s->ts);