summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger (at) gmx (dot) de>2008-10-06 19:05:33 +0200
committerChristian Wieninger <cwieninger (at) gmx (dot) de>2008-10-06 19:05:33 +0200
commitd04428ee6ea2ab584eb3b1dd9c8bd1d051137f42 (patch)
tree2e4e2784343dfeef53e75dd65b1df9fdc1ff545f
parent5f6c56f9b630ef18d5c8808569fc11ca82313e88 (diff)
downloadvdr-plugin-epgsearch-d04428ee6ea2ab584eb3b1dd9c8bd1d051137f42.tar.gz
vdr-plugin-epgsearch-d04428ee6ea2ab584eb3b1dd9c8bd1d051137f42.tar.bz2
improved response time when canceling the search timer thread
-rw-r--r--HISTORY1
-rw-r--r--HISTORY.DE1
-rw-r--r--doc-src/en/epgsearch.4.txt4
-rw-r--r--searchtimer_thread.c13
4 files changed, 11 insertions, 8 deletions
diff --git a/HISTORY b/HISTORY
index f83c7cf..251d51b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -27,6 +27,7 @@ fixes:
thanks to e9hack@vdrportal for providing a patch
- fixed line breaks in SVDRP command LSTT, thanks to Andreas Mair for providing a
patch
+- improved response time when canceling the search timer thread
2008-04-29: Version 0.9.24
diff --git a/HISTORY.DE b/HISTORY.DE
index 8ec4237..169355e 100644
--- a/HISTORY.DE
+++ b/HISTORY.DE
@@ -28,6 +28,7 @@ fixes:
- Es wird nun cCondWait::Wait anstelle von cCondWait:SleepMs verwendet um Probleme beim
Beenden zu vermeiden, danke e9hack@vdrportal für den Patch
- Zeilenumbrüche im SVDRP-Befehl LSTT korrigiert, Danke an Andreas Mair für einen Patch
+- Antwortzeit beim Abbruch des Suchtimer-Threads verbessert
2008-04-29: Version 0.9.24
diff --git a/doc-src/en/epgsearch.4.txt b/doc-src/en/epgsearch.4.txt
index 8267c35..884685a 100644
--- a/doc-src/en/epgsearch.4.txt
+++ b/doc-src/en/epgsearch.4.txt
@@ -44,7 +44,7 @@ directory entries could look like this:
Childrens Movies~%category%
%CATEGORY%~%genre%
-There are also three other variables: %Title%, %Subtitle% and %Channel%.
+There are also three other variables: %Title%, %Subtitle% and %chlng%.
If you don't use %Title%, the title is always automatically
appended to the directory entry, when a timer will be created. If you
set 'serial recording' to 'yes' in your search timer then also the
@@ -57,7 +57,7 @@ is the same as
%Category%~%Genre%
(with 'serial recording' set to 'yes').
-The %Channel% variable gets replaced with the name of the channel.
+The %chnlng% variable gets replaced with the name of the channel.
Attention: Automatically appending title and subtitle will not be
done, if you use the variables %Title% or %Subtitle% in the directory
diff --git a/searchtimer_thread.c b/searchtimer_thread.c
index a8ed791..d890bbd 100644
--- a/searchtimer_thread.c
+++ b/searchtimer_thread.c
@@ -477,7 +477,7 @@ void cSearchTimerThread::Action(void)
LogFile.iSysLog("search timer update finished");
// check for conflicts
- if (EPGSearchConfig.checkTimerConflictsAfterUpdate)
+ if (EPGSearchConfig.checkTimerConflictsAfterUpdate && m_Active)
{
LogFile.iSysLog("check for timer conflicts");
cConflictCheck conflictCheck;
@@ -514,9 +514,10 @@ void cSearchTimerThread::Action(void)
// check for updates for manual timers
CheckManualTimers();
- mailNotifier.SendUpdateNotifications();
+ if (m_Active)
+ mailNotifier.SendUpdateNotifications();
- if (updateForced == 2)
+ if (updateForced == 2 && m_Active)
SendMsg(tr("Search timer update done!"));
// reset service call flag
@@ -709,7 +710,7 @@ void cSearchTimerThread::CheckExpiredRecs()
LogFile.Log(1, "check for expired recordings started");
cThreadLock RecordingsLock(&Recordings);
cList<cRecordingObj> DelRecordings;
- for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording))
+ for (cRecording *recording = Recordings.First(); recording && m_Active; recording = Recordings.Next(recording))
{
LogFile.Log(3, "check recording %s from %s for expiration", recording->Name(), DAYDATETIME(recording->start));
if (recording->start == 0)
@@ -747,7 +748,7 @@ void cSearchTimerThread::CheckExpiredRecs()
else
LogFile.Log(3, "recording will expire in %d days, search timer %s", search->delAfterDays - daysBetween, search->search);
}
- for (cRecordingObj *recordingObj = DelRecordings.First(); recordingObj; recordingObj = DelRecordings.Next(recordingObj))
+ for (cRecordingObj *recordingObj = DelRecordings.First(); recordingObj && m_Active; recordingObj = DelRecordings.Next(recordingObj))
{
cRecording* recording = recordingObj->recording;
cSearchExt* search = recordingObj->search;
@@ -817,7 +818,7 @@ void cSearchTimerThread::CheckManualTimers()
const cSchedules *schedules;
schedules = cSchedules::Schedules(schedulesLock);
- for (cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti))
+ for (cTimer *ti = Timers.First(); ti && m_Active; ti = Timers.Next(ti))
{
if (TriggeredFromSearchTimerID(ti) != -1) continue; // manual timer?