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
|
// 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)
|
||||||
|
{
|
||||||
|
Log->Message( dlNone, dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount );
|
||||||
|
// Check for Terminate Limit
|
||||||
if (TermCount < MaxTermCount) {
|
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 );
|
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 );
|
||||||
|
|||||||
Reference in New Issue
Block a user