当前位置: 技术问答>linux和unix
当信号量(灯)遇上信号,help!
来源: 互联网 发布时间:2016-01-10
本文导语: 问题是这样的: 程序开了几个写进程,一个读进程,使用共享内存传递数据,使用信号量(灯)锁定来同步,现在的问题是,如果程序在前台运行时,当几个写进程在信号量上等待时,使用ctrl+z(SIGSTOP)后,在此信号...
问题是这样的:
程序开了几个写进程,一个读进程,使用共享内存传递数据,使用信号量(灯)锁定来同步,现在的问题是,如果程序在前台运行时,当几个写进程在信号量上等待时,使用ctrl+z(SIGSTOP)后,在此信号量上等待的进程信号量操作都会出错。因为SIGSTOP不能ignore且不能捕获,这个问题很让我头大
程序开了几个写进程,一个读进程,使用共享内存传递数据,使用信号量(灯)锁定来同步,现在的问题是,如果程序在前台运行时,当几个写进程在信号量上等待时,使用ctrl+z(SIGSTOP)后,在此信号量上等待的进程信号量操作都会出错。因为SIGSTOP不能ignore且不能捕获,这个问题很让我头大
|
鄙视楼主...
信号会打断所有阻塞操作,所以你能做的就是
while ( 1 )
{
if ( do() == -1 && errno == EINTR )
continue;
}
信号会打断所有阻塞操作,所以你能做的就是
while ( 1 )
{
if ( do() == -1 && errno == EINTR )
continue;
}
|
放到后台去?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。