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