pthread_cond_wait()
会被pthread_cond_signal()
吵醒。但在某些情况下,我没有得到回复。因此,在这些情况下,当我简单地销毁pthread_mutex_t
,pthread_cond_t
时,它似乎仍在无限循环中继续。
我不明白这是不是原因或其他原因。请帮帮我。
答案 0 :(得分:3)
{m}被破坏后,pthread_cond_wait()
的行为未定义。
不仅如此,在关联的互斥锁被锁定时,应调用pthread_cond_wait()
,
否则函数的行为也是未定义的。
该函数还在互斥锁和条件变量之间建立动态绑定(当函数返回时,绑定也被释放)。因此,销毁条件变量也可能导致未定义的行为。
更多细节可以在这里找到: opengroup: pthread_cond_wait