函数宏

GLibRW_LOCK_READER_AUTO_LOCK

自:2.80.0

声明 [源代码]

#define G_RW_LOCK_READER_AUTO_LOCK (
  mutex,
  var
)

描述 [源代码]

g_autoptr() 声明 GRWLockReaderLocker 变量,并锁定以进行读取。在退出作用域时,此互斥锁将自动解锁。如果变量在作用域中未使用,则使用 G_GNUC_UNUSED 来声明它,以避免编译器进行警告。

此功能仅在 GCC 和 clang 上受支持。在其他编译器上未定义此宏,也不应用在旨在移植到那些编译器的程序中。

请注意,这应在允许声明变量的地方使用,当使用了 -Wdeclaration-after-statement 时,这可以在任何语句之前进行声明,或在 C99 之前的 C 标准中进行声明。

{
  G_RW_LOCK_READER_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_reader_locker_free);
  obj->stuff_without_lock ();
}

提供自:2.80.0

此函数无法直接供语言绑定使用。

参数

mutex

类型: -

GRWLock

var

类型: -

要声明的变量名。