Skip to content
Snippets Groups Projects
Commit 32725d2a authored by René Fritze's avatar René Fritze
Browse files

fix sigsev in SIGINT handler

parent b15b0364
No related branches found
No related tags found
No related merge requests found
......@@ -6,11 +6,23 @@
#include <dune/stuff/logging.hh>
namespace Stuff {
namespace Signals {
void resetSignal(int signal)
{
struct sigaction new_action;
new_action.sa_handler = SIG_DFL;
sigemptyset(&new_action.sa_mask);
new_action.sa_flags = 0;
sigaction(signal, &new_action, NULL);
}
void handleInterrupt(int signal)
{
Logger().Info() << "forcefully terminated at " << Logging::TimeString() << std::endl;
Logger().Flush();
exit(signal);
// reset signal handler and commit suicide
resetSignal(signal);
kill(getpid(), signal);
}
void installSignalHandlers()
......@@ -24,5 +36,6 @@ void installSignalHandlers()
sigaction(SIGINT, &new_action, NULL);
}
} // end namespace signals
} // end namepsace stuff
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment