哪些系统调用不会被信号中断?

时间:2016-01-29 12:59:44

标签: linux unix linux-kernel kernel signals

AFAIK,当收到信号时,linux / unix上的大多数系统调用都会中断。根据下面的博客文章,有些系统调用没有中断:

  

一般来说,立即返回的函数(不要等待任何I / O操作完成或休眠)不能像socket(2)那样可以中断,它只是分配一个套接字并且不会等待任何事情。

http://www.linuxprogrammingblog.com/all-about-linux-signals?page=5

是否有这类功能的清单?与此主题相关的任何链接都会有所帮助。

1 个答案:

答案 0 :(得分:1)

  

内核用于决定调用的机制是什么   可以中断,哪一个不是? (如果带有“socket()”的故事是   真)

该任务具有位掩码,可以使用set_task_stateTASK_INTERRUPTIBLETASK_UNINTERRUPTIBLE(已定义here)进行设置。

  

是否有这类功能的清单?

我不认为,有不间断功能列表。您可以搜索TASK_UNINTERRUPTIBLE(例如this

的用法

修改:example使用signal_pending_state

检查此标记