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

sem_wait 阻塞的一个诡异问题

    来源: 互联网  发布时间:2017-04-05

    本文导语:  程序已经跟踪很多次, 不知为什么 sem_wait(&the_sem); 会阻塞住. 假设该进程的进程号为 pid . 当我用 "strace -ppid" 查看进程的系统调用时, 进程会从阻塞恢复, 并且从此以后完全正常, 不会在同一位置阻塞. 而 strace...

程序已经跟踪很多次, 不知为什么 sem_wait(&the_sem); 会阻塞住. 假设该进程的进程号为 pid .
当我用 "strace -ppid" 查看进程的系统调用时, 进程会从阻塞恢复, 并且从此以后完全正常, 不会在同一位置阻塞. 而 strace 的输出也没什么异常.
不知哪位大侠可以给个提示?

|
 sem_wait(&the_sem); 这句话的意思就是阻塞,直到有人释放了the_sem这个信号啊

|
sem_wait的作用是执行信号量减1,但前提是该信号量为非零值,sem_wait(&the_sem);这句阻塞了,很可能是另外一个地方没有把信号量the_sem置为非零

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












  • 相关文章推荐
  • posix 无名信号量 实现进程间同步 失败 sem_init sem_wait sem_post
  • 我的glibc-doc中查不到sem_wait这样的函数 是我装的glibc-doc太旧么 不是阿 我是ubuntu上apt-get获得的应该最新了阿


  • 站内导航:


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

    ©2012-2021,