Merge branch 'pr/127'

This commit is contained in:
rakshasa
2014-06-18 22:06:37 +09:00
+9 -2
View File
@@ -76,8 +76,15 @@ SignalHandler::set_handler(unsigned int signum, slot_void slot) {
if (!slot)
throw std::logic_error("SignalHandler::set_handler(...) received an empty slot.");
signal(signum, &SignalHandler::caught);
m_handlers[signum] = slot;
struct sigaction sa;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART;
sa.sa_handler = &SignalHandler::caught;
if (sigaction(signum, &sa, NULL) == -1)
throw std::logic_error("Could not set sigaction: " + std::string(rak::error_number::current().c_str()));
else
m_handlers[signum] = slot;
}
void