28 #ifndef TOMOGRAPHER_TOOLS_SIGNAL_HANDLER 29 #define TOMOGRAPHER_TOOLS_SIGNAL_HANDLER 70 #ifndef TOMOGRAPHER_SIG_HANDLER_REPEAT_EXIT_DELAY 71 #define TOMOGRAPHER_SIG_HANDLER_REPEAT_EXIT_DELAY 2 74 namespace tomo_internal {
78 void signal_dispatch_fn(
int signum)
80 assert(signum >= 0 && signum < NSIG &&
"signum out of range 0...NSIG !") ;
82 #if defined(__MINGW32__) || defined(__MINGW64__) 84 signal(signum, tomo_internal::signal_dispatch_fn);
92 if ( (now - tomo_internal::last_sig_hit_time[signum]) < TOMOGRAPHER_SIG_HANDLER_REPEAT_EXIT_DELAY ) {
99 tomo_internal::last_sig_hit_time[signum] = now;
101 if (signal_handler[signum] != NULL) {
104 std::fprintf(stderr,
"Warning: sig_handle: no signal handler set (got signal %d)\n", signum);
118 tomo_internal::signal_handler[signum] = sobj;
119 signal(signum, tomo_internal::signal_dispatch_fn);
Base namespace for the Tomographer project.