提交 22d948a2 编写于 作者: J Jindrich Makovicka 提交者: malc

fix 100% CPU load when idle with ALSA

Playback control function did not disable polling when playback stops.
Caused busy spinning of the main loop due to unprocessed events.
Signed-off-by: NJindrich Makovicka <makovick@gmail.com>
Signed-off-by: Nmalc <av1474@comtv.ru>
上级 f871d689
...@@ -889,6 +889,10 @@ static int alsa_ctl_out (HWVoiceOut *hw, int cmd, ...) ...@@ -889,6 +889,10 @@ static int alsa_ctl_out (HWVoiceOut *hw, int cmd, ...)
case VOICE_DISABLE: case VOICE_DISABLE:
ldebug ("disabling voice\n"); 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); return alsa_voice_ctl (alsa->handle, "playback", 1);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册