# ------------------------------------------------------------------------
# r806 | charrea6 | 2011-07-04 22:42:50 +0200(lun, 04 lug 2011) | 1 line
# 
# #3216269 - Locking issues.
# ------------------------------------------------------------------------
Index: trunk/src/standard/dvb/dvbtext.c
===================================================================
--- trunk/src/standard/dvb/dvbtext.c	(revisione 805)
+++ trunk/src/standard/dvb/dvbtext.c	(revisione 806)
@@ -219,6 +219,7 @@
     }
     if ((long)cd == -1)
     {
+        pthread_mutex_unlock(&ResultBufferMutex);
         LogModule(LOG_ERROR, DVBTEXT, "Failed to open conversion descriptor!\n");
         return NULL;
     }
Index: trunk/src/plugins/manualfilters.c
===================================================================
--- trunk/src/plugins/manualfilters.c	(revisione 805)
+++ trunk/src/plugins/manualfilters.c	(revisione 806)
@@ -273,7 +273,7 @@
 static void CommandSetOutputMRL(int argc, char **argv)
 {
     ManualFilter_t *filter;
-    DeliveryMethodInstance_t *instance;
+    DeliveryMethodInstance_t *instance, *old_instance;
 
     CommandCheckAuthenticated();
 
@@ -284,8 +284,9 @@
     if (instance)
     {
         pthread_mutex_lock(&manualFiltersMutex);
-        DeliveryMethodDestroy(filter->dmInstance);
+        old_instance = filter->dmInstance;
         filter->dmInstance = instance;
+        DeliveryMethodDestroy(old_instance);
         pthread_mutex_unlock(&manualFiltersMutex);
         CommandPrintf("MRL set to \"%s\" for %s\n", DeliveryMethodGetMRL(filter->dmInstance), argv[0]);
     }
