mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Now returning from removing deleted recordings after at most 10 seconds, or if the user presses a remote control key
This commit is contained in:
parent
3bb447cf8d
commit
be92ad13ab
@ -3318,6 +3318,8 @@ Claus Muus <email@clausmuus.de>
|
||||
Dieter Ferdinand <dieter.ferdinand@gmx.de>
|
||||
for reporting a problem with jumping to an absolute position via the Red key in
|
||||
case replay was paused
|
||||
for reporting a problem with the system getting unresponsive when removing a huge
|
||||
number of files in the thread that removes deleted recordings
|
||||
|
||||
Jasmin Jessich <jasmin@anw.at>
|
||||
for modifying the CAM API so that it is possible to implement CAMs that can be freely
|
||||
|
5
HISTORY
5
HISTORY
@ -8307,7 +8307,7 @@ Video Disk Recorder Revision History
|
||||
- The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
|
||||
the functional modification to cFont::CreateFont().
|
||||
|
||||
2015-01-15: Version 2.1.7
|
||||
2015-01-17: Version 2.1.7
|
||||
|
||||
- No longer logging an error message in DirSizeMB() if the given directory doesn't
|
||||
exist. This avoids lots of log entries in case several VDRs use the same video
|
||||
@ -8381,3 +8381,6 @@ Video Disk Recorder Revision History
|
||||
displayed object (thanks to Thomas Reufer).
|
||||
- Added a comment to cRecorder::Activate() about the need to call Detach() in the
|
||||
destructor (suggested by Eike Sauer).
|
||||
- Now returning from removing deleted recordings after at most 10 seconds, or if the
|
||||
user presses a remote control key, to keep the system from getting unresponsive
|
||||
when removing a huge number of files (reported by Dieter Ferdinand).
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user