繁体   English   中英

信号处理程序代码会阻塞主进程吗?

[英]does signal handler code block the main process?

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

  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遵循单独的执行路径(如线程)还是阻塞了主进程。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM