aboutsummaryrefslogtreecommitdiff
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)
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 3ce6b840..b375eefd 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 a1788593..e19b82d6 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);