summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2005-02-12 09:21:32 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2005-02-12 09:21:32 +0000
commitd14b8bdcf3fc664afee60edf7d5f9732336f46c8 (patch)
tree4134b79cc71c7c1dea6a6e25e5e6f6c25b853f4a /src
parent15cb35d76e13c16d636167e227c915bd03511af3 (diff)
downloadxine-lib-d14b8bdcf3fc664afee60edf7d5f9732336f46c8.tar.gz
xine-lib-d14b8bdcf3fc664afee60edf7d5f9732336f46c8.tar.bz2
Don't forget to lock the catalog during the gc.
CVS patchset: 7400 CVS date: 2005/02/12 09:21:32
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/load_plugins.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c
index 61195980e..98dd95a36 100644
--- a/src/xine-engine/load_plugins.c
+++ b/src/xine-engine/load_plugins.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: load_plugins.c,v 1.195 2005/02/09 20:03:20 tmattern Exp $
+ * $Id: load_plugins.c,v 1.196 2005/02/12 09:21:32 tmattern Exp $
*
*
* Load input/demux/audio_out/video_out/codec plugins
@@ -701,7 +701,6 @@ static int _load_plugin_class(xine_t *this,
void *lib;
plugin_info_t *info;
-
/* load the dynamic library if needed */
if (!node->file->lib_handle) {
lprintf("dlopen %s\n", filename);
@@ -1963,7 +1962,9 @@ static void _unload_unref_plugins(xine_t *this, xine_list_t *list) {
}
void xine_plugins_garbage_collector(xine_t *self) {
+ plugin_catalog_t *catalog = self->plugin_catalog;
+ pthread_mutex_lock (&catalog->lock);
_unload_unref_plugins(self, self->plugin_catalog->input);
_unload_unref_plugins(self, self->plugin_catalog->demux);
_unload_unref_plugins(self, self->plugin_catalog->spu);
@@ -1997,6 +1998,8 @@ void xine_plugins_garbage_collector(xine_t *self) {
printf("End of plugin summary\n\n");
}
#endif
+
+ pthread_mutex_unlock (&catalog->lock);
}
spu_decoder_t *_x_get_spu_decoder (xine_stream_t *stream, uint8_t stream_type) {