当前位置: 技术问答>linux和unix
高分,signa_pending()函数是什么意思?!!!
来源: 互联网 发布时间:2016-04-12
本文导语: 例如:netif_queue_stopped(dev)和netif_running(dev)和do_softirq();什么意思? 谢谢高手们!!! if(netif_queue_stopped(dev) || NEED_RESCHED) { do { if( signa_pending(current) || !netif_running(dev) { run = 0; break; } ...
例如:netif_queue_stopped(dev)和netif_running(dev)和do_softirq();什么意思?
谢谢高手们!!!
if(netif_queue_stopped(dev) || NEED_RESCHED) {
do {
if( signa_pending(current) ||
!netif_running(dev) {
run = 0;
break;
}
if(NEED_RESCHED)
schedule();
else
do_softirq();
} while(netif_queue_stopped(dev));
}
谢谢高手们!!!
if(netif_queue_stopped(dev) || NEED_RESCHED) {
do {
if( signa_pending(current) ||
!netif_running(dev) {
run = 0;
break;
}
if(NEED_RESCHED)
schedule();
else
do_softirq();
} while(netif_queue_stopped(dev));
}
|
signal_pending( current ):检查当前进程是否有信号处理pending在那里需要处理,返回不为0表示有信号需要处理。返回-ERESTARTSYS表示信号函数处理完毕后重新执行信号函数前的某个系统调用。 即如果信号函数前有发生系统调用,在调度用户信号函数之前,内核会检查系统调用的返回值,看看是不是因为这个信号而中断了系统调用.如果返回值-ERESTARTSYS,并且当前调度的信号具备-ERESTARTSYS属性,系统就会在用户信号函数返回之后再执行该系统调用。