信号处理程序代码会阻塞主进程吗?
Posted
技术标签:
【中文标题】信号处理程序代码会阻塞主进程吗?【英文标题】: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
是像线程一样遵循单独的执行路径还是阻塞了主进程。
【问题讨论】:
***.com/questions/6129927/…的可能重复 【参考方案1】:您可以通过在回调中添加 sleep() 调用来确定您是否使用 GNU C,并查看之后的代码是否延迟。
【讨论】:
以上是关于信号处理程序代码会阻塞主进程吗?的主要内容,如果未能解决你的问题,请参考以下文章
在插槽中调用 QDialog::exec 会阻塞主事件循环吗?