summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) {