diff options
author | Jindrich Makovicka <makovick@gmail.com> | 2010-10-17 19:28:14 +0200 |
---|---|---|
committer | malc <av1474@comtv.ru> | 2010-10-18 00:39:02 +0400 |
commit | 22d948a2d97434192018bdabaf0a50cda7f994be (patch) | |
tree | 78452d341f2a4146f88c7eb8aa62df92584635ce /audio/alsaaudio.c | |
parent | f871d6893a7bf8c14db162f6e75a5f8157e4c2bb (diff) |
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: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'audio/alsaaudio.c')
-rw-r--r-- | audio/alsaaudio.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c index f0171f9842..3ca40780ec 100644 --- a/audio/alsaaudio.c +++ b/audio/alsaaudio.c @@ -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); } |