]> git.proxmox.com Git - mirror_qemu.git/commitdiff
fix 100% CPU load when idle with ALSA
authorJindrich Makovicka <makovick@gmail.com>
Sun, 17 Oct 2010 17:28:14 +0000 (19:28 +0200)
committermalc <av1474@comtv.ru>
Sun, 17 Oct 2010 20:39:02 +0000 (00:39 +0400)
Playback control function did not disable polling when playback stops.
Caused busy spinning of the main loop due to unprocessed events.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: malc <av1474@comtv.ru>
audio/alsaaudio.c

index f0171f9842a4476c3cb3aa78fb9c7695b8e5ba5f..3ca40780ec07f4606cd931583ca1a3d2e8dcb966 100644 (file)
@@ -889,6 +889,10 @@ static int alsa_ctl_out (HWVoiceOut *hw, int cmd, ...)
 
     case VOICE_DISABLE:
         ldebug ("disabling voice\n");
+        if (hw->poll_mode) {
+            hw->poll_mode = 0;
+            alsa_fini_poll (&alsa->pollhlp);
+        }
         return alsa_voice_ctl (alsa->handle, "playback", 1);
     }