函数宏
GLibRW_LOCK_WRITER_AUTO_LOCK
自版本:2.80.0
声明 [源码]
#define G_RW_LOCK_WRITER_AUTO_LOCK (
mutex,
var
)
描述 [源码]
使用 g_autoptr()
声明一个 GRWLockWriterLocker
变量并锁定进行写入。当离开作用域时,互斥锁将被自动解锁。变量使用 G_GNUC_UNUSED
声明,以防止在作用域内未使用时编译器警告。
此功能仅在 GCC 和 clang 上受支持。在其他编译器上没有定义此宏,且不应在旨在可移植到那些编译器的程序中使用。
请注意,应在允许声明变量的地方使用此功能,这可能是使用 -Wdeclaration-after-statement
的情况下在任何语句之前,或者是在 C99 标准之前的 C 标准。
{
G_RW_LOCK_WRITER_AUTO_LOCK (&obj->rw_lock, locker);
obj->stuff_with_lock ();
if (condition)
{
// No need to unlock
return;
}
// Unlock before end of scope
g_clear_pointer (&locker, g_rw_lock_writer_locker_free);
obj->stuff_without_lock ();
}
自版本:2.80.0
此函数不直接提供给语言绑定。