From 25bc6e4223a28ed31364157cf92a6dd2ec38d77f Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 30 Jun 2014 14:21:18 +0200
Subject: [PATCH] sig interupt

---
 alib2/src/std/sigHandler.cpp     | 36 ++++++++++++++++++++++++++++++++
 alib2/src/std/sigHandler.h       | 22 +++++++++++++++++++
 alib2/src/std/sigsegvHandler.cpp | 24 ---------------------
 alib2/src/std/sigsegvHandler.h   | 22 -------------------
 4 files changed, 58 insertions(+), 46 deletions(-)
 create mode 100644 alib2/src/std/sigHandler.cpp
 create mode 100644 alib2/src/std/sigHandler.h
 delete mode 100644 alib2/src/std/sigsegvHandler.cpp
 delete mode 100644 alib2/src/std/sigsegvHandler.h

diff --git a/alib2/src/std/sigHandler.cpp b/alib2/src/std/sigHandler.cpp
new file mode 100644
index 0000000000..9b124597a0
--- /dev/null
+++ b/alib2/src/std/sigHandler.cpp
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <execinfo.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "sigHandler.h"
+#include "stacktrace.h"
+#include <iostream>
+
+namespace std {
+
+void SigHandler::handler(int signal) {
+	switch(signal) {
+		case SIGSEGV:
+			std::cout << "Segmentation fault" << std::endl;
+			break;
+		case SIGINT:
+			std::cout << "Interrupted" << std::endl;
+			break;
+		default:
+			std::cout << "Unknown signal" << std::endl;
+			break;
+	}
+	std::cout << std::stacktrace() << std::endl;
+	exit(1);
+}
+
+SigHandler::SigHandler() {
+	signal(SIGSEGV, SigHandler::handler);
+	signal(SIGINT, SigHandler::handler);
+}
+
+SigHandler SigHandler::HANDLER;
+
+} /* namespace std */
diff --git a/alib2/src/std/sigHandler.h b/alib2/src/std/sigHandler.h
new file mode 100644
index 0000000000..76bf4ad5f2
--- /dev/null
+++ b/alib2/src/std/sigHandler.h
@@ -0,0 +1,22 @@
+#ifndef SIG_HANDLER_H_
+#define SIG_HANDLER_H_
+
+#include <sstream>
+#include <string>
+
+namespace std {
+
+class SigHandler {
+	static void handler(int);
+
+protected:
+
+	SigHandler();
+
+	static SigHandler HANDLER;
+
+};
+
+} /* namespace std */
+
+#endif /* SIG_HANDLER_H_ */
diff --git a/alib2/src/std/sigsegvHandler.cpp b/alib2/src/std/sigsegvHandler.cpp
deleted file mode 100644
index 2f7717ec29..0000000000
--- a/alib2/src/std/sigsegvHandler.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdio.h>
-#include <execinfo.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "sigsegvHandler.h"
-#include "stacktrace.h"
-#include <iostream>
-
-namespace std {
-
-void SigsegvHandler::handler(int) {
-	std::cout << std::stacktrace() << std::endl;
-	exit(1);
-}
-
-SigsegvHandler::SigsegvHandler() {
-	signal(SIGSEGV, SigsegvHandler::handler);
-}
-
-SigsegvHandler SigsegvHandler::HANDLER;
-
-} /* namespace std */
diff --git a/alib2/src/std/sigsegvHandler.h b/alib2/src/std/sigsegvHandler.h
deleted file mode 100644
index a0603fdd0b..0000000000
--- a/alib2/src/std/sigsegvHandler.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef ITOS_H_
-#define ITOS_H_
-
-#include <sstream>
-#include <string>
-
-namespace std {
-
-class SigsegvHandler {
-	static void handler(int);
-
-protected:
-
-	SigsegvHandler();
-
-	static SigsegvHandler HANDLER;
-
-};
-
-} /* namespace std */
-
-#endif /* ITOS_H_ */
-- 
GitLab