diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2015-01-17 10:52:15 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2015-01-17 10:52:15 +0100 |
commit | be92ad13ab847464be7dd712918b440da89c56e1 (patch) | |
tree | d9e8b633746ad3dac4beeec2710fa78dd2f198c2 /recording.c | |
parent | 3bb447cf8d346f151a56aa7da5360db6da2db570 (diff) | |
download | vdr-be92ad13ab847464be7dd712918b440da89c56e1.tar.gz vdr-be92ad13ab847464be7dd712918b440da89c56e1.tar.bz2 |
Now returning from removing deleted recordings after at most 10 seconds, or if the user presses a remote control key
Diffstat (limited to 'recording.c')
-rw-r--r-- | recording.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/recording.c b/recording.c index cf3c5f05..3806165e 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 3.18 2014/03/16 11:09:17 kls Exp $ + * $Id: recording.c 3.19 2015/01/17 10:49:03 kls Exp $ */ #include "recording.h" @@ -65,6 +65,7 @@ #define REMOVELATENCY 10 // seconds to wait until next check after removing a file #define MARKSUPDATEDELTA 10 // seconds between checks for updating editing marks #define MININDEXAGE 3600 // seconds before an index file is considered no longer to be written +#define MAXREMOVETIME 10 // seconds after which to return from removing deleted recordings #define MAX_LINK_LEVEL 6 @@ -97,11 +98,16 @@ void cRemoveDeletedRecordingsThread::Action(void) // Make sure only one instance of VDR does this: cLockFile LockFile(cVideoDirectory::Name()); if (LockFile.Lock()) { + time_t StartTime = time(NULL); bool deleted = false; cThreadLock DeletedRecordingsLock(&DeletedRecordings); for (cRecording *r = DeletedRecordings.First(); r; ) { if (cIoThrottle::Engaged()) return; + if (time(NULL) - StartTime > MAXREMOVETIME) + return; // don't stay here too long + if (cRemote::HasKeys()) + return; // react immediately on user input if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) { cRecording *next = DeletedRecordings.Next(r); r->Remove(); |