结构

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_clear

释放使用 g_rec_mutex_init() 分配给递归互斥锁的资源。

自:2.32

g_rec_mutex_init

初始化 GRecMutex,以便可以 used

自: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