【问题标题】:does signal handler code block the main process?信号处理程序代码会阻塞主进程吗?
【发布时间】:2014-06-23 22:19:18
【问题描述】:

我正在如下注册一个警报信号处理程序,并且每秒设置一个警报信号。

  sigact.sa_handler = time_handler;
  sigemptyset(&sigact.sa_mask);
  sigact.sa_flags = SA_RESTART;
  if (sigaction(SIGALRM, &sigact, NULL) < 0)
      panic("sigaction SIGALRM: %s\n", strerror(errno));

  /* Set alarm signal every second */
  alarm(1);

我的问题是函数time_handler 是像线程一样遵循单独的执行路径还是阻塞了主进程。

【问题讨论】:

标签: c timer


【解决方案1】:

您可以通过在回调中添加 sleep() 调用来确定您是否使用 GNU C,并查看之后的代码是否延迟。

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    相关资源
    最近更新 更多