Fixed shutdown after user inactivity in case a plugin is keeping the OSD open

This commit is contained in:
Klaus Schmidinger 2018-07-16 08:55:15 +02:00
parent 30eb01ef37
commit 5543f13051
3 changed files with 18 additions and 12 deletions

View File

@ -3566,3 +3566,7 @@ Onur Sent
Helmut Binder <cco@aon.at>
for improving calculating signal strength and quality
Ulrich Eckhardt <uli@uli-eckhardt.de>
for reporting a problem with shutdown after user inactivity in case a plugin is
keeping the OSD open

View File

@ -9348,7 +9348,7 @@ Video Disk Recorder Revision History
Senzel).
- Official release.
2018-05-27: Version 2.4.1
2018-07-16: Version 2.4.1
- Fixed handling the tfRecording flag in the SVDRP commands MODT and UPDT (reported
by Johann Friedrichs).
@ -9361,3 +9361,5 @@ Video Disk Recorder Revision History
(if any) implements SetMessage().
- Fixed locking the Channels list in cDisplayChannel, where the lock was still held
when Flush() was called (reported by Matthias Senzel and Uwe Scheffler).
- Fixed shutdown after user inactivity in case a plugin is keeping the OSD open
(reported by Ulrich Eckhardt).

22
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
* $Id: vdr.c 4.26 2018/04/28 11:27:48 kls Exp $
* $Id: vdr.c 4.27 2018/07/16 08:52:40 kls Exp $
*/
#include <getopt.h>
@ -1514,9 +1514,7 @@ int main(int argc, char *argv[])
ShutdownHandler.countdown.Cancel();
}
if ((Now - LastInteract) > ACTIVITYTIMEOUT && !cRecordControls::Active() && !RecordingsHandler.Active() && (Now - cRemote::LastActivity()) > ACTIVITYTIMEOUT) {
// Handle housekeeping tasks
if (!cRecordControls::Active() && !RecordingsHandler.Active() && (Now - cRemote::LastActivity()) > ACTIVITYTIMEOUT) {
// Shutdown:
// Check whether VDR will be ready for shutdown in SHUTDOWNWAIT seconds:
time_t Soon = Now + SHUTDOWNWAIT;
@ -1535,13 +1533,15 @@ int main(int argc, char *argv[])
// Do this again a bit later:
ShutdownHandler.SetRetry(SHUTDOWNRETRY);
}
// Disk housekeeping:
RemoveDeletedRecordings();
ListGarbageCollector.Purge();
cSchedules::Cleanup();
// Plugins housekeeping:
PluginManager.Housekeeping();
// Handle housekeeping tasks
if ((Now - LastInteract) > ACTIVITYTIMEOUT) {
// Disk housekeeping:
RemoveDeletedRecordings();
ListGarbageCollector.Purge();
cSchedules::Cleanup();
// Plugins housekeeping:
PluginManager.Housekeeping();
}
}
ReportEpgBugFixStats();