signal_pending(current)

原创 2012年03月22日 12:34:04

signal_pending(current)

检查当前进程是否有信号处理,返回不为0表示有信号需要处理。
返回 -ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个系统调用。也就是说,如果信号函数前有发生系统调用,在调度信号处理函数之前,内核会检查系统调用的返回值,看看是不是因为这个信号而中断了系统调用.

如果返回值-ERESTARTSYS,并且当前调度的信号具备-ERESTARTSYS属性,系统就会在用户信号函数返回之后再执行该系统调用。


eg:

while(1)

{

        if (signal_pending(current))
            break;

         ..................

         ..................

}

表示有信号处理,则退出

signal_pending()

检测进程p是否有待处理的信号(p->thread_info->flags中TIF_SIGPENDING位是否置位) -----------------------------------------...
  • angle_birds
  • angle_birds
  • 2012年12月14日 16:27
  • 1593

signal_pending函数解析

signal_pending函数解析 分类: Linux kernel2013-10-08 19:33 1775人阅读 评论(0) 收藏 举报 经常我们在睡眠的代码中 会看...
  • wangyin159
  • wangyin159
  • 2015年08月28日 09:47
  • 874

linux中断下半部分

中断处理程序运行在中断上下文中,所以不允许被抢占,所以执行时间应该越短越好,但有时中断处理程序还需要做很多工作,为了两点都满足,所以一般我们把中断处理切为两个部分:上半部(top half)和下半部(...
  • adaptiver
  • adaptiver
  • 2012年06月27日 16:25
  • 3080

内核阻塞函数中的ERESTARTSYS的定义

ERESTARTSYS is a part of the api between the driver and the  signal-handling code in the kernel. It ...
  • qisefengzheng
  • qisefengzheng
  • 2015年01月13日 15:50
  • 431

解析:signal_pending与返回-ERESTARTSYS

经常我们在睡眠的代码中 会看到这样的例子:     if (signal_pending(current)) {      ret = -ERESTARTSYS;      retu...
  • vhghhd
  • vhghhd
  • 2011年10月09日 18:38
  • 2585

signal_pending(current)用法

signal_pending(current)检查当前进程是否有信号处理,返回不为0表示有信号需要处理。返回 -ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个系统调用。也就是说...
  • hitxiaotao
  • hitxiaotao
  • 2007年01月10日 15:12
  • 2702

Linux内核开发之异步通知与异步I/O(二)

“曾经有一份真挚的爱情摆在面前,我却不懂珍惜;曾经有一个承诺,我却倍感珍惜,今天一定要好好讲讲..” 讲讲啥,讲讲上节说的那个异步通知的例子呗,大家喜欢看代码,咋们就先上代码:struct globa...
  • wustdatamining
  • wustdatamining
  • 2012年12月11日 17:46
  • 150

signal_pending(current)用法

signal_pending(current) 检查当前进程是否有信号处理,返回不为0表示有信号需要处理。 返回 -ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个系统调用。...
  • sunstars2009918
  • sunstars2009918
  • 2012年02月23日 11:19
  • 747

linux signal 内核处理

linux signal 处理   说明: 本文主要翻译自ULK 3rd chapter 11. 主要受 http://blog.csdn.net/yunsongice 影响,故发表在csdn...
  • wzwind
  • wzwind
  • 2012年02月03日 13:59
  • 6060

linux驱动编程——signal_pending

signal_pending(current): 检查当前进程是否有信号处理,返回不为0表示有信号需要处理。 返回 -ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个...
  • u013780605
  • u013780605
  • 2017年02月06日 15:10
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:signal_pending(current)
举报原因:
原因补充:

(最多只允许输入30个字)