为什么信号量无法打断阻塞函数??
Jales 2008-02-29 07:54:48 我用一个Ctrl+c信号来打断 读取消息队列的阻塞函数,在以往的一些Red linux系统中,都没什么问题,而我又装了一台Red linux系统,程序在这台机器上不能很好的运行,就是因为Ctrl+c信号没有打断 读取消息队列的这个阻塞函数 。
bool bstop = false;
void msgDeal(void* nqueue){
while(!bstop){
//读取消息队列(阻塞函数)
}
}
void signalDeal(int signal){
bstop = true;
}
int main(){
signal(SIGINT, signalDeal);
signal(SIGTERM, signalDeal);
//。。。。。
//启动线程
}
上面就是我的程序的基本结构,信号的目的就是利用Ctrl+c可以把整个进程关闭,可是在以前没有出现过信号不能打断阻塞函数的问题,请高手帮忙看一下,谢了