当前位置: 首页>>代码示例>>C++>>正文


C++ SignalHandler::Run方法代码示例

本文整理汇总了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;
}
开发者ID:Jurrie,项目名称:ola,代码行数:38,代码来源:SignalThread.cpp


注:本文中的SignalHandler::Run方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。