函数宏

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

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

参数

mutex

类型: -

GRWLock

var

类型: -

要声明的变量名。