Important update:

- Log signals direct to StdErr if no Log instance
- Bug fix: ProcessName is external pointer, not literal
This commit is contained in:
Charl Wentzel
2017-07-01 12:07:34 +02:00
parent 706cd9caf6
commit c50d920f94

View File

@@ -21,7 +21,7 @@
// Global vars // Global vars
extern CLogCore * Log; extern CLogCore * Log;
extern char ProcessName[]; extern char * ProcessName;
// Termination Vars // Termination Vars
bool Terminate = false; bool Terminate = false;
@@ -83,22 +83,36 @@ void SignalTerminate( int sig )
Terminate = true; Terminate = true;
TermCount++; TermCount++;
// Check for Terminate Limit std::cerr << "\r\n" << ProcessName << ": ***********************************" << std::endl;
// Show signal received if not already terminated
std::cerr << "\r\n" << ProcessName << ": ***********************************\n";
// Create Log Entry // Create Log Entry
if (Log) Log->Message( dlNone, dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount ); if (Log)
if (TermCount < MaxTermCount) { {
if (Log) Log->Message( dlNone, dlNone, "%s: ** Terminating normally... **", ProcessName ); Log->Message( dlNone, dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount );
// Check for Terminate Limit
if (TermCount < MaxTermCount) {
Log->Message( dlNone, dlNone, "%s: ** Terminating normally... **", ProcessName );
} else {
Log->Message( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName );
}
} }
else { else
if (Log) Log->Message( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName ); {
std::cerr << ProcessName << ": ** " << SigName << " signal received [" << TermCount << "] **" << std::endl;
// Check for Terminate Limit
if (TermCount < MaxTermCount) {
std::cerr << ProcessName << ": ** Terminating normally... **" << std::endl;
} else {
std::cerr << ProcessName << ": ** Terminating immediately! **" << std::endl;
}
} }
std::cerr << ProcessName << ": ***********************************\n\n";
if (TermCount >= MaxTermCount) std::cerr << ProcessName << ": ***********************************" << std::endl << std::endl;
// Check for Terminate Limit
if (TermCount >= MaxTermCount) {
exit( sig ); exit( sig );
}
return; return;
}//--------------------------------------------------------------------------- }//---------------------------------------------------------------------------
@@ -120,13 +134,19 @@ void SignalAbort( int sig )
} }
// Show signal received // Show signal received
std::cerr << "\n" << ProcessName << ": ********************************\n"; std::cerr << "\n" << ProcessName << ": ********************************" << std::endl;
// Create Log Entry - but don't post // Create Log Entry - but don't post
if (Log) Log->Message( dlNone, dlNone, "%s: ** %s signal received **", ProcessName, SigName ); if (Log) {
if (Log) Log->Message( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName ); Log->Message( dlNone, dlNone, "%s: ** %s signal received **", ProcessName, SigName );
Log->Message( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName );
}
else {
std::cerr << ProcessName << ": ** " << SigName << " signal received **" << std::endl;
std::cerr << ProcessName << ": ** Terminating immediately! **" << std::endl;
}
std::cerr << ProcessName << ": ********************************\n\n"; std::cerr << ProcessName << ": ********************************" << std::endl << std::endl;
// Terminate with signal // Terminate with signal
exit( sig ); exit( sig );