summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--recording.c13
3 files changed, 10 insertions, 7 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 63b164a6..15a605e3 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1069,8 +1069,6 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for setting the thread name, so that it can be seen in 'top -H'
for replacing the Finnish language code "smi" with "suo"
for adding cap_sys_nice to the capabilities that are not dropped
- for making VDR no longer check for deleted recordings to be removed from the
- foreground thread, to avoid blocking the main loop for too long
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
diff --git a/HISTORY b/HISTORY
index ef35e15b..036b3745 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6033,7 +6033,5 @@ Video Disk Recorder Revision History
2009-04-13: Version 1.7.6
-- No longer checking for deleted recordings to be removed from the foreground
- thread, to avoid blocking the main loop for too long (thanks to Rolf Ahrenberg).
- cDevice::PlayTs() now syncs on the TS packet sync bytes.
- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets.
diff --git a/recording.c b/recording.c
index 22df5b6c..00965a7d 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 2.10 2009/04/12 14:04:22 kls Exp $
+ * $Id: recording.c 2.11 2009/04/13 12:28:36 kls Exp $
*/
#include "recording.h"
@@ -114,8 +114,15 @@ void RemoveDeletedRecordings(void)
{
static time_t LastRemoveCheck = 0;
if (time(NULL) - LastRemoveCheck > REMOVECHECKDELTA) {
- if (!RemoveDeletedRecordingsThread.Active())
- RemoveDeletedRecordingsThread.Start();
+ if (!RemoveDeletedRecordingsThread.Active()) {
+ cThreadLock DeletedRecordingsLock(&DeletedRecordings);
+ for (cRecording *r = DeletedRecordings.First(); r; r = DeletedRecordings.Next(r)) {
+ if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) {
+ RemoveDeletedRecordingsThread.Start();
+ break;
+ }
+ }
+ }
LastRemoveCheck = time(NULL);
}
}