+/*
+ Signal handler (grabs Ctrl-C on POSIX systems)
+*/
+
+bool g_killed = false;
+
+bool * signal_handler_killstatus(void)
+{
+ return &g_killed;
+}
+
+#if !defined(_WIN32) // POSIX
+ #include <signal.h>
+
+void sigint_handler(int sig)
+{
+ if(g_killed == false)
+ {
+ dstream<<DTIME<<"INFO: sigint_handler(): "
+ <<"Ctrl-C pressed, shutting down."<<std::endl;
+
+ dstream<<DTIME<<"INFO: sigint_handler(): "
+ <<"Printing debug stacks"<<std::endl;
+ debug_stacks_print();
+
+ g_killed = true;
+ }
+ else
+ {
+ (void)signal(SIGINT, SIG_DFL);
+ }
+}
+
+void signal_handler_init(void)
+{
+ dstream<<"signal_handler_init()"<<std::endl;
+ (void)signal(SIGINT, sigint_handler);
+}
+
+#else // _WIN32
+
+void signal_handler_init(void)
+{
+ // No-op
+}
+
+#endif
+
+/*
+ Path mangler
+*/
+