函数宏
GLibREC_MUTEX_AUTO_LOCK
since: 2.80.0
声明 [src]
#define G_REC_MUTEX_AUTO_LOCK (
mutex,
var
)
说明 [src]
声明一个具有 g_autoptr()
的 GRecMutexLocker
变量并锁定互斥锁。当离开范围时,互斥锁将自动解锁。该变量使用 G_GNUC_UNUSED
声明,以避免在没有在作用域中使用该变量的情况下发出编译器警告。
此功能仅支持 GCC 和 clang。在其他编译器上,没有定义此宏,并且不应在打算移植到那些编译器的程序中使用此宏。
请注意,这应该在允许声明变量的地方使用,即在使用 -Wdeclaration-after-statement
这一情况的任何语句前,或 C99 之前的 C 标准中使用。
{
G_REC_MUTEX_AUTO_LOCK (&obj->rec_mutex, locker);
obj->stuff_with_lock ();
if (condition)
{
// No need to unlock
return;
}
// Unlock before end of scope
g_clear_pointer (&locker, g_rec_mutex_locker_free);
obj->stuff_without_lock ();
}
自 2.80.0 起可用
这个函数不能直接由语言绑定使用。
参数
mutex
-
类型:
-
一个
GRecMutex
。 var
-
类型:
-
待声明的一个变量名。