qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [COMMIT f4e8d0b] winwave: remove wait object when finaliz


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT f4e8d0b] winwave: remove wait object when finalizing DAC voice
Date: Sun, 11 Oct 2009 01:43:44 -0000

From: malc <address@hidden>

Signed-off-by: malc <address@hidden>

diff --git a/audio/winwaveaudio.c b/audio/winwaveaudio.c
index 16133d1..5bbce2a 100644
--- a/audio/winwaveaudio.c
+++ b/audio/winwaveaudio.c
@@ -253,30 +253,31 @@ static int winwave_run_out (HWVoiceOut *hw, int live)
     return decr;
 }
 
+static void winwave_poll_out (void *opaque)
+{
+    (void) opaque;
+    audio_run ("winwave_poll_out");
+}
+
 static void winwave_fini_out (HWVoiceOut *hw)
 {
     WaveVoiceOut *wave = (WaveVoiceOut *) hw;
 
-    winwave_anal_close_out (wave);
-
-    qemu_free (wave->pcm_buf);
-    wave->pcm_buf = NULL;
-
-    qemu_free (wave->hdrs);
-    wave->hdrs = NULL;
-
     if (wave->event) {
+        qemu_del_wait_object (wave->event, winwave_poll_out, wave);
         if (!CloseHandle (wave->event)) {
             AUD_log (AUDIO_CAP, "CloseHandle failed %lx\n", GetLastError ());
         }
         wave->event = NULL;
     }
-}
 
-static void winwave_poll_out (void *opaque)
-{
-    (void) opaque;
-    audio_run ("winwave_poll_out");
+    winwave_anal_close_out (wave);
+
+    qemu_free (wave->pcm_buf);
+    wave->pcm_buf = NULL;
+
+    qemu_free (wave->hdrs);
+    wave->hdrs = NULL;
 }
 
 static int winwave_ctl_out (HWVoiceOut *hw, int cmd, ...)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]