本文整理汇总了C++中SignalHandler::Run方法的典型用法代码示例。如果您正苦于以下问题:C++ SignalHandler::Run方法的具体用法?C++ SignalHandler::Run怎么用?C++ SignalHandler::Run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SignalHandler
的用法示例。
在下文中一共展示了SignalHandler::Run方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Run
/**
* Entry point into the thread.
*/
void* SignalThread::Run() {
sigset_t signals;
int signo;
#ifdef _WIN32
if (g_signal_map) {
OLA_WARN << "Windows signal map was already set, it will be overwritten.";
}
g_signal_map = &m_signal_handlers;
SignalMap::const_iterator iter = m_signal_handlers.begin();
for (; iter != m_signal_handlers.end(); ++iter) {
signal(iter->first, Win32SignalHandler);
}
#endif
while (true) {
#ifndef _WIN32
sigemptyset(&signals);
AddSignals(&signals);
// Don't try to use sigpending here. It won't work on Mac.
if (sigwait(&signals, &signo) != 0) {
OLA_INFO << "sigwait error: " << strerror(errno);
continue;
}
OLA_INFO << "Received signal: " << strsignal(signo);
SignalHandler *handler = STLFindOrNull(m_signal_handlers, signo);
if (handler) {
handler->Run();
}
#endif
}
return NULL;
}