From 9a1076256deef8bf806942eb72eabdbfdf74ddb3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 1 Oct 2013 16:33:07 +0200 Subject: mixer/alsa: handle ENODEV Fixes busy loop when USB sound device gets unplugged (Mantis bug #3824). --- src/mixer/alsa_mixer_plugin.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/mixer') diff --git a/src/mixer/alsa_mixer_plugin.c b/src/mixer/alsa_mixer_plugin.c index cecf44db9..0c8625cc1 100644 --- a/src/mixer/alsa_mixer_plugin.c +++ b/src/mixer/alsa_mixer_plugin.c @@ -182,6 +182,11 @@ alsa_mixer_source_dispatch(GSource *_source, if (err < 0) { g_warning("snd_mixer_handle_events() failed: %s", snd_strerror(err)); + + if (err == -ENODEV) + /* the sound device was unplugged; disable + this GSource */ + return false; } return true; -- cgit v1.2.3