首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pthread_cond_signal死锁

pthread_cond_signal死锁
EN

Stack Overflow用户
提问于 2010-12-03 20:02:13
回答 1查看 2.4K关注 0票数 0

如果对pthread_cond_signal的调用死锁,可能的原因是什么?

据我所知(man page),它是用互斥锁在内部实现的,但是什么会导致这个内部互斥锁操作死锁呢?

编辑:我正在调试一个在某些情况下似乎死锁的应用程序。一些堆栈跟踪如下所示:

代码语言:javascript
复制
Thread 1 (Thread 0xf6dff6c0 (LWP 32001)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x00af15de in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
#2  0x00aef3eb in pthread_cond_signal@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0
#3  0xf4cc8d83 in xxx
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-04 12:05:47

好吧,需要注意的一件事可能是手册页中的这条警告,它听起来特别适用:

条件函数不是异步信号安全的,不应从信号处理程序调用。特别是,从信号处理程序调用pthread_cond_signalpthread_cond_broadcast可能会使调用线程死锁。

除此之外,如果pthread_cond_t中的内部互斥锁被超出其他变量界限的零散写入所覆盖,您也可以看到这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4345315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档