当前位置:  技术问答>linux和unix

求解信号阻塞后还能打断系统调用是为什么

    来源: 互联网  发布时间:2016-12-19

    本文导语:  我用signal设置了一个SIGALRM信号处理函数timer_handler(),然后用setitime设置了100ms产生一次SIGALRM信号,此时程序运行一切正常,timer_handler()执行也正常。 但是当我用sigprocmask()阻塞SIGALRM信号(阻塞10 秒),发现timer_handler(...

我用signal设置了一个SIGALRM信号处理函数timer_handler(),然后用setitime设置了100ms产生一次SIGALRM信号,此时程序运行一切正常,timer_handler()执行也正常。
但是当我用sigprocmask()阻塞SIGALRM信号(阻塞10 秒),发现timer_handler()还是每100ms执行一次,而且进程里的一个线程中的msgrcv()调用开始每100ms返回一次-1(就是被信号打断了,因为使用signal所以没有设置重启调用),我想问问有人知道是为什么吗?信号没阻塞前msgrcv()没被打断过,阻塞了反而被打断,而且信号处理函数还在执行?
本人接触LINUX时间很短,希望大家多多帮忙!

|
第一: 每个线程都有自己的sigmask
第二: 子线程的初始sigmask继承自父线程
第三: 你自己看一下调用sigprocmask的时机是否正确。

|
明显你是先创建线程,再屏蔽信号滴。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求解 求解 求解
  • Linux Shell编程从初学到精通 第四章课后习题2 求解
  • 有限元求解器 GetDP
  • 偏微分方程求解工具箱 DUNE
  • linux命令求解释....
  • 偏微分方程求解框架 Overture
  • 100分求解!!!!!
  • 编译内核时候出现的问题,求解
  • makefile求解
  • 求解ucos ii的一句代码
  • 求助linux下mysql 求解!
  • 求解啊,centos下 shutdown -h now 无效??
  • 求解windows下硬盘安装linux如何用linux引导
  • 关于linux shell的一个不明白的地方。求解
  • solaris安装不上,求解.............
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • ubuntu12.04求解
  • 100分求解如何查看内存最高使用值!!
  • 高分求解---如何在DOS下查杀欢乐时光病毒?用哪种杀毒软件?Windows98没法进入了!
  • 求解struct的大小


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3