mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00: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
ff2f39b440
commit
1c9cd049b4
@ -3219,3 +3219,5 @@ Christian Winkler <winkler_chr@yahoo.de>
|
|||||||
Dieter Ferdinand <dieter.ferdinand@gmx.de>
|
Dieter Ferdinand <dieter.ferdinand@gmx.de>
|
||||||
for reporting a problem with jumping to an absolute position via the Red key in
|
for reporting a problem with jumping to an absolute position via the Red key in
|
||||||
case replay was paused
|
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
|
||||||
|
5
HISTORY
5
HISTORY
@ -7916,10 +7916,13 @@ 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 APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
|
||||||
the functional modification to cFont::CreateFont().
|
the functional modification to cFont::CreateFont().
|
||||||
|
|
||||||
2015-01-13: Version 2.0.7
|
2015-01-17: Version 2.0.7
|
||||||
|
|
||||||
- Fixed a possible division by zero in frame rate detection.
|
- Fixed a possible division by zero in frame rate detection.
|
||||||
- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
|
- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
|
||||||
Stefan Huelswitt).
|
Stefan Huelswitt).
|
||||||
- Fixed jumping to an absolute position via the Red key in case replay was paused
|
- Fixed jumping to an absolute position via the Red key in case replay was paused
|
||||||
(reported by Dieter Ferdinand).
|
(reported by Dieter Ferdinand).
|
||||||
|
- 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
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: recording.c 2.91.1.7 2014/03/16 11:03:18 kls Exp $
|
* $Id: recording.c 2.91.1.8 2015/01/17 10:54:16 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "recording.h"
|
#include "recording.h"
|
||||||
@ -63,6 +63,7 @@
|
|||||||
#define REMOVELATENCY 10 // seconds to wait until next check after removing a file
|
#define REMOVELATENCY 10 // seconds to wait until next check after removing a file
|
||||||
#define MARKSUPDATEDELTA 10 // seconds between checks for updating editing marks
|
#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 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
|
#define MAX_LINK_LEVEL 6
|
||||||
|
|
||||||
@ -93,11 +94,16 @@ void cRemoveDeletedRecordingsThread::Action(void)
|
|||||||
// Make sure only one instance of VDR does this:
|
// Make sure only one instance of VDR does this:
|
||||||
cLockFile LockFile(VideoDirectory);
|
cLockFile LockFile(VideoDirectory);
|
||||||
if (LockFile.Lock()) {
|
if (LockFile.Lock()) {
|
||||||
|
time_t StartTime = time(NULL);
|
||||||
bool deleted = false;
|
bool deleted = false;
|
||||||
cThreadLock DeletedRecordingsLock(&DeletedRecordings);
|
cThreadLock DeletedRecordingsLock(&DeletedRecordings);
|
||||||
for (cRecording *r = DeletedRecordings.First(); r; ) {
|
for (cRecording *r = DeletedRecordings.First(); r; ) {
|
||||||
if (cIoThrottle::Engaged())
|
if (cIoThrottle::Engaged())
|
||||||
return;
|
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) {
|
if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) {
|
||||||
cRecording *next = DeletedRecordings.Next(r);
|
cRecording *next = DeletedRecordings.Next(r);
|
||||||
r->Remove();
|
r->Remove();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user