为什么信号量无法打断阻塞函数??

Jales Jales 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用一个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可以把整个进程关闭,可是在以前没有出现过信号不能打断阻塞函数的问题,请高手帮忙看一下,谢了
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
Jales
C++ 语言 65,214 成员 250,514 内容