1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
# ------------------------------------------------------------------------
# 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]);
}
|