结构
GLibRecMutex
自:2.32
描述 [src]
struct GRecMutex {
  /* No available fields */
}
GRecMutex 结构是一个不透明数据结构,用于表示递归互斥锁。它类似于 GMutex,不同之处在于可以在同一个线程中多次锁定 GRecMutex,而不会发生死锁。执行此操作时,必须小心地尽最大可能解锁递归互斥锁。
如果在静态存储中分配了 GRecMutex,则可以使用此存储而不进行初始化。否则,应在 GRecMutex 上调用 g_rec_mutex_init(),并在 done 时调用 g_rec_mutex_clear()。
GRecMutex 仅应通过 g_rec_mutex_ 函数进行访问。
自 2.32 起提供
实例方法
g_rec_mutex_lock
锁定 rec_mutex。如果另一个线程已经锁定了 rec_mutex,当前线程将阻塞,直到另一个线程解锁 rec_mutex。如果当前线程已锁定 rec_mutex,则增加 rec_mutex 的“锁计数”。只有当互斥锁被解锁的次数与被锁定的次数一样多时,互斥锁才会再次变为可用状态。
自:2.32
g_rec_mutex_trylock
尝试锁定 rec_mutex。如果另一个线程已经锁定了 rec_mutex,它会立即返回 FALSE。否则,它会锁定 rec_mutex 并返回 TRUE。
自:2.32
g_rec_mutex_unlock
解锁 rec_mutex。如果另一个线程在 g_rec_mutex_lock() 调用中针对 rec_mutex 而被阻塞,则它将解除阻塞并且可以自行锁定 rec_mutex。
自:2.32