From 5543f130510fba24c369d04a515415024be331b9 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 16 Jul 2018 08:55:15 +0200 Subject: [PATCH] Fixed shutdown after user inactivity in case a plugin is keeping the OSD open --- CONTRIBUTORS | 4 ++++ HISTORY | 4 +++- vdr.c | 22 +++++++++++----------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index baaae827..d62e3c47 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3566,3 +3566,7 @@ Onur Sent Helmut Binder for improving calculating signal strength and quality + +Ulrich Eckhardt + for reporting a problem with shutdown after user inactivity in case a plugin is + keeping the OSD open diff --git a/HISTORY b/HISTORY index fafc0620..2b3d2c20 100644 --- a/HISTORY +++ b/HISTORY @@ -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). diff --git a/vdr.c b/vdr.c index 502fd96b..1f9684e1 100644 --- a/vdr.c +++ b/vdr.c @@ -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 @@ -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();