1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Now calling cPluginManager::Active() only if VDR is really trying to shut down, and waiting for 5 minutes before calling it again

This commit is contained in:
Klaus Schmidinger 2006-12-02 10:35:27 +01:00
parent ddcb37300f
commit 661da094e1
3 changed files with 14 additions and 2 deletions

View File

@ -1476,6 +1476,7 @@ Udo Richter <udo_richter@gmx.de>
for suggesting that the function cThread::Cancel() should only set 'running' to for suggesting that the function cThread::Cancel() should only set 'running' to
false and not actually kill the thread if the special value -1 is given false and not actually kill the thread if the special value -1 is given
or fixing a possible segfault in cSkins::Message() or fixing a possible segfault in cSkins::Message()
for some hints on how to improve handling cPluginManager::Active()
Sven Kreiensen <svenk@kammer.uni-hannover.de> Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date for his help in keeping 'channels.conf.terr' up to date
@ -2038,3 +2039,6 @@ Boguslaw Juza <bogdan@uci.agh.edu.pl>
Ulf Kiener <webmaster@ulf-kiener.de> Ulf Kiener <webmaster@ulf-kiener.de>
for reporting a problem with audio track descriptions in the DVD plugin after a for reporting a problem with audio track descriptions in the DVD plugin after a
replay has been stopped replay has been stopped
Jörg Wendel <vdr-ml@jwendel.de>
for reporting that cPlugin::Active() was called too often

View File

@ -5002,3 +5002,7 @@ Video Disk Recorder Revision History
- Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas - Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas
Brugger). This required the APIVERSION to be increased, so plugins will have to Brugger). This required the APIVERSION to be increased, so plugins will have to
be recompiled. be recompiled.
- Now calling cPluginManager::Active() only if VDR is really trying to shut down,
and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for
reporting that cPlugin::Active() was called too often, and to Udo Richter for
some hints on how to improve this).

8
vdr.c
View File

@ -22,7 +22,7 @@
* *
* The project's page is at http://www.cadsoft.de/vdr * The project's page is at http://www.cadsoft.de/vdr
* *
* $Id: vdr.c 1.280 2006/10/14 10:01:32 kls Exp $ * $Id: vdr.c 1.281 2006/12/02 10:33:35 kls Exp $
*/ */
#include <getopt.h> #include <getopt.h>
@ -1154,11 +1154,15 @@ int main(int argc, char *argv[])
Skins.Message(mtInfo, tr("Editing process finished")); Skins.Message(mtInfo, tr("Editing process finished"));
} }
} }
if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && !cPluginManager::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) { if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) {
time_t Now = time(NULL); time_t Now = time(NULL);
if (Now - LastActivity > ACTIVITYTIMEOUT) { if (Now - LastActivity > ACTIVITYTIMEOUT) {
// Shutdown: // Shutdown:
if (Shutdown && (Setup.MinUserInactivity || LastActivity == 1) && Now - LastActivity > Setup.MinUserInactivity * 60) { if (Shutdown && (Setup.MinUserInactivity || LastActivity == 1) && Now - LastActivity > Setup.MinUserInactivity * 60) {
if (!ForceShutdown && cPluginManager::Active()) {
LastActivity = Now - Setup.MinUserInactivity * 60 + SHUTDOWNRETRY; // try again later
continue;
}
cTimer *timer = Timers.GetNextActiveTimer(); cTimer *timer = Timers.GetNextActiveTimer();
time_t Next = timer ? timer->StartTime() : 0; time_t Next = timer ? timer->StartTime() : 0;
time_t Delta = timer ? Next - Now : 0; time_t Delta = timer ? Next - Now : 0;