# HG changeset patch # User ertzing # Date 1177100952 25200 # Node ID 0ee1070d17417371c6e97a316cc43226a1f211a4 # Parent 317a7a8c002d9379b6068c0b0da48eb8708f84e5 [svn] - Properly wait for the flac decoder thread to finish diff -r 317a7a8c002d -r 0ee1070d1741 ChangeLog --- a/ChangeLog Fri Apr 20 07:42:53 2007 -0700 +++ b/ChangeLog Fri Apr 20 13:29:12 2007 -0700 @@ -1,3 +1,12 @@ +2007-04-20 14:42:53 +0000 Ralf Ertzinger + revision [2076] + + - Rename flacng debug flag to FLACNG_DEBUG + + trunk/src/flacng/debug.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + + 2007-04-20 14:41:13 +0000 Ralf Ertzinger revision [2074] diff -r 317a7a8c002d -r 0ee1070d1741 src/flacng/Makefile --- a/src/flacng/Makefile Fri Apr 20 07:42:53 2007 -0700 +++ b/src/flacng/Makefile Fri Apr 20 13:29:12 2007 -0700 @@ -11,6 +11,6 @@ OBJECTS = ${SOURCES:.c=.o} -CFLAGS += $(PICFLAGS) $(GTK_CFLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) -I../../intl -I../.. -I./libflac $(FLAC_CFLAGS) +CFLAGS += $(PICFLAGS) $(GTK_CFLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) -I../../intl -I../.. -I./libflac $(FLAC_CFLAGS) -DFLACNG_DEBUG include ../../mk/objective.mk diff -r 317a7a8c002d -r 0ee1070d1741 src/flacng/plugin.c --- a/src/flacng/plugin.c Fri Apr 20 07:42:53 2007 -0700 +++ b/src/flacng/plugin.c Fri Apr 20 13:29:12 2007 -0700 @@ -67,7 +67,7 @@ callback_info* main_info; gboolean plugin_initialized = FALSE; gint seek_to = -1; -static GThread* thread; +static GThread* thread = NULL; GMutex* flac_pl_mutex; /* === */ @@ -590,6 +590,16 @@ input->playing = FALSE; + if (NULL != thread) { + /* + * Wait for the decoder thread to finish + */ + _DEBUG("Waiting for decoder thread to die..."); + g_thread_join(thread); + thread = NULL; + _DEBUG("Decoder thread has finished"); + } + _LEAVE; }