aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-12-08 08:47:47 +0100
committerMax Kellermann <max@duempel.org>2009-12-08 08:47:47 +0100
commit5a354a1ed4addd7bc757af8da797c768580454c2 (patch)
tree3f6bec247ba66e7d52883c42fd4793355a5992d7
parentf4b707b4ca6451fcb1a6af6d3f2e58579b3c01a5 (diff)
downloadmpd-5a354a1ed4addd7bc757af8da797c768580454c2.tar.gz
mpd-5a354a1ed4addd7bc757af8da797c768580454c2.tar.xz
mpd-5a354a1ed4addd7bc757af8da797c768580454c2.zip
mixer: explicitly close all mixers on shutdown
Mixers with the "global" flag set aren't closed automatically when the output device is closed. Thus, they might still be open when MPD shuts down.
-rw-r--r--NEWS1
-rw-r--r--src/mixer_control.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 3ce6b8403..b375eefd7 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ ver 0.15.7 (2009/??/??)
- id3: fix ID3v1 charset conversion
* decoders:
- ffmpeg: don't try to force stereo
+* mixer: explicitly close all mixers on shutdown
* mapper: fix memory leak when playlist_directory is not set
* mapper: apply filesystem_charset to playlists
* command: verify playlist name in the "rm" command
diff --git a/src/mixer_control.c b/src/mixer_control.c
index a17885935..e19b82d65 100644
--- a/src/mixer_control.c
+++ b/src/mixer_control.c
@@ -62,6 +62,10 @@ mixer_free(struct mixer *mixer)
assert(mixer->plugin != NULL);
assert(mixer->mutex != NULL);
+ /* mixers with the "global" flag set might still be open at
+ this point (see mixer_auto_close()) */
+ mixer_close(mixer);
+
g_mutex_free(mixer->mutex);
mixer->plugin->finish(mixer);