函数宏
GLibMUTEX_AUTO_LOCK
自:2.80.0
声明 [源代码]
#define G_MUTEX_AUTO_LOCK (
mutex,
var
)
说明 [源代码]
使用 g_autoptr()
声明一个 mutex
变量,并锁定该锁。该锁将在退出范围时自动解锁。使用 G_GNUC_UNUSED
声明此变量,以防在范围内不用到时产生编译器警告。
此功能仅在 GCC 和 clang 中受支持。此宏在其他编译器中未定义,不应用于计划移植到这些编译器的程序中。
请注意,此宏应用于允许声明变量的位置,在使用 -Wdeclaration-after-statement
的情况下,此宏应出现在任何语句之前,或出现在 C99 之前的 C 标准中。
{
G_MUTEX_AUTO_LOCK (&obj->mutex, locker);
obj->stuff_with_lock ();
if (condition)
{
// No need to unlock
return;
}
// Unlock before end of scope
g_clear_pointer (&locker, g_mutex_locker_free);
obj->stuff_without_lock ();
}
自 2.80.0 起可用
语言绑定不直接提供此函数。