方法

GLibCondwait

声明 [src]

void
g_cond_wait (
  GCond* cond,
  GMutex* mutex
)

描述 [src]

原子的释放 mutex 并等待直到 cond 被标记。当此函数返回时,mutex 会被再次锁定并归调用线程所有。

当使用条件变量时,可能会发生假唤醒(即:即使没有调用 g_cond_signal(),但 g_cond_wait() 可能会返回)。还可能发生偷来的唤醒。这是当调用 g_cond_signal() 时,但是另一个线程在当前线程之前获得了 mutex 并以某种方式修改了程序的状态,当 g_cond_wait() 能够返回时,期望的条件已经不再满足。

因此,必须始终在循环中使用 g_cond_wait()。请参阅 GCond 的文档以获取完整的示例。

参数

mutex

类型: GMutex

一个当前被锁定的 GMutex

数据由方法的调用者拥有。