| 167 | namespace DefaultSignalHandler |
| 168 | { |
| 169 | void install() |
| 170 | { |
| 171 | #ifndef _WIN32 |
| 172 | Logger* log = Logger::getInstance("CORE"); |
| 173 | |
| 174 | struct sigaction action {}; |
| 175 | sigemptyset(&action.sa_mask); |
| 176 | action.sa_sigaction = signal_handler; |
| 177 | action.sa_flags |= SA_SIGINFO; |
| 178 | |
| 179 | for (const auto& s : ALL_SIGNALS) |
| 180 | { |
| 181 | if (sigaction(s.number, &action, nullptr) != 0) |
| 182 | { |
| 183 | Error(log, "Failed to install handler for %s]\n", s.name); |
| 184 | } |
| 185 | } |
| 186 | #endif // _WIN32 |
| 187 | } |
| 188 | } // namespace DefaultSignalHandler |