winwave: close event handle and delete wait object after closing HWAVEOUT

To avoid possibly being called back and thus racing.

Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
malc 2009-10-11 06:38:47 +04:00
parent f4e8d0b737
commit 875ef647b0

View file

@ -263,6 +263,8 @@ static void winwave_fini_out (HWVoiceOut *hw)
{
WaveVoiceOut *wave = (WaveVoiceOut *) hw;
winwave_anal_close_out (wave);
if (wave->event) {
qemu_del_wait_object (wave->event, winwave_poll_out, wave);
if (!CloseHandle (wave->event)) {
@ -271,8 +273,6 @@ static void winwave_fini_out (HWVoiceOut *hw)
wave->event = NULL;
}
winwave_anal_close_out (wave);
qemu_free (wave->pcm_buf);
wave->pcm_buf = NULL;