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

Implemented a check to see whether the system time is running linearly

This commit is contained in:
Klaus Schmidinger 2001-09-23 10:04:26 +02:00
parent 9f1046221d
commit 53364f9248
2 changed files with 11 additions and 1 deletions

View File

@ -780,3 +780,4 @@ Video Disk Recorder Revision History
next program start. next program start.
- New command line option '-r' to define a command that gets called before and - New command line option '-r' to define a command that gets called before and
after each recording (see INSTALL for details). after each recording (see INSTALL for details).
- Implemented a check to see whether the system time is running linearly.

11
vdr.c
View File

@ -22,7 +22,7 @@
* *
* The project's page is at http://www.cadsoft.de/people/kls/vdr * The project's page is at http://www.cadsoft.de/people/kls/vdr
* *
* $Id: vdr.c 1.75 2001/09/22 14:05:40 kls Exp $ * $Id: vdr.c 1.76 2001/09/23 09:58:36 kls Exp $
*/ */
#define _GNU_SOURCE #define _GNU_SOURCE
@ -310,6 +310,7 @@ int main(int argc, char *argv[])
int LastChannel = -1; int LastChannel = -1;
int PreviousChannel = cDvbApi::CurrentChannel(); int PreviousChannel = cDvbApi::CurrentChannel();
time_t LastActivity = 0; time_t LastActivity = 0;
time_t LinearTime = time(NULL);
int MaxLatencyTime = 0; int MaxLatencyTime = 0;
bool ForceShutdown = false; bool ForceShutdown = false;
@ -319,6 +320,14 @@ int main(int argc, char *argv[])
} }
while (!Interrupted) { while (!Interrupted) {
// Test if we are running in the Einstein continuum:
time_t Now = time(NULL);
time_t LinearDelta = Now - LinearTime;
if (LinearDelta) {
if (LinearDelta < 0 || LinearDelta > 300) // assuming nothing will block for more than 5 minutes
esyslog(LOG_ERR, "ERROR: time warp detected (%d seconds)", LinearDelta);
LinearTime = Now;
}
// Handle emergency exits: // Handle emergency exits:
if (cThread::EmergencyExit()) { if (cThread::EmergencyExit()) {
esyslog(LOG_ERR, "emergency exit requested - shutting down"); esyslog(LOG_ERR, "emergency exit requested - shutting down");