函数宏

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 起可用

语言绑定不直接提供此函数。

参数

mutex

类型: -

一个 GMutex

var

类型: -

要声明的变量名。