Important update:
- Log signals direct to StdErr if no Log instance - Bug fix: ProcessName is external pointer, not literal
This commit is contained in:
@@ -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 (TermCount < MaxTermCount) {
|
||||
if (Log) Log->Message( dlNone, dlNone, "%s: ** Terminating normally... **", ProcessName );
|
||||
if (Log)
|
||||
{
|
||||
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 {
|
||||
if (Log) 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;
|
||||
}
|
||||
}
|
||||
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 );
|
||||
|
||||
Reference in New Issue
Block a user