summaryrefslogtreecommitdiff
path: root/epgsearchext.c
diff options
context:
space:
mode:
authorTomJoad <TomJoad@vdr-portal.de>2017-06-07 21:54:19 +0200
committerFrank Neumann <fnu@yavdr.org>2017-06-07 21:54:19 +0200
commitcb315679bdb548a4bfd5d6d9341f6f15bd96223b (patch)
treef841d0967306fdd2d5bccea9c9f91929abc1cfaa /epgsearchext.c
parent9bfa02dd31798d816ada3ebec1c4d7242300cf95 (diff)
downloadvdr-plugin-epgsearch-cb315679bdb548a4bfd5d6d9341f6f15bd96223b.tar.gz
vdr-plugin-epgsearch-cb315679bdb548a4bfd5d6d9341f6f15bd96223b.tar.bz2
Fix some lock sequences.
Diffstat (limited to 'epgsearchext.c')
-rw-r--r--epgsearchext.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/epgsearchext.c b/epgsearchext.c
index b516c9c..bfe8b5c 100644
--- a/epgsearchext.c
+++ b/epgsearchext.c
@@ -1015,9 +1015,6 @@ cSearchResults* cSearchExt::Run(int PayTVMode, bool inspectTimerMargin, int eval
{
LogFile.Log(3,"start search for search timer '%s'", search);
- LOCK_CHANNELS_READ; // Channels must be locked first
- LOCK_SCHEDULES_READ;
-
bool noPayTV = false;
if (PayTVMode == -1) // use search's setting
noPayTV = (useChannel == 3);
@@ -1028,6 +1025,10 @@ cSearchResults* cSearchExt::Run(int PayTVMode, bool inspectTimerMargin, int eval
cSearchResults* pSearchResults = pPrevResults;
cSearchResults* pBlacklistResults = GetBlacklistEvents(inspectTimerMargin?MarginStop:0);
+ {
+ LOCK_CHANNELS_READ;
+ LOCK_SCHEDULES_READ;
+
int counter = 0;
const cSchedule *Schedule = Schedules->First();
while (Schedule) {
@@ -1098,6 +1099,7 @@ cSearchResults* cSearchExt::Run(int PayTVMode, bool inspectTimerMargin, int eval
Schedule = (const cSchedule *)Schedules->Next(Schedule);
}
LogFile.Log(3,"found %d event(s) for search timer '%s'", counter, search);
+ } // Give up locks
if (pBlacklistResults) delete pBlacklistResults;