Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 1.77 KB

File metadata and controls

77 lines (56 loc) · 1.77 KB

lock

  • shared_mutex[meta header]
  • std[meta namespace]
  • shared_lock[meta class]
  • function[meta id-type]
  • cpp14[meta cpp]
void lock();

概要

共有ロックを取得する

効果

pm->lock_shared();

pmはメンバ変数として保持している、ミューテックスオブジェクトへのポインタ

事後条件

owns_lock() == true

戻り値

なし

例外

この関数は、pm->lock() 関数内で投げられうるあらゆる例外を投げる可能性がある。

そのほかに、以下のerror conditionを持つsystem_error例外オブジェクトを送出する可能性がある:

#include <cassert>
#include <shared_mutex>

int main()
{
  std::shared_timed_mutex mtx;
  {
    // 遅延ロックする(ここではロックを取得しない)
    std::shared_lock<std::shared_timed_mutex> lock(mtx, std::defer_lock);

    // 共有ロックを取得する
    lock.lock();

    assert(lock.owns_lock() == true);
  }
}
  • lock()[color ff0000]
  • std::shared_timed_mutex[link /reference/shared_mutex/shared_timed_mutex.md]
  • std::defer_lock[link /reference/mutex/defer_lock.md]
  • lock.owns_lock()[link owns_lock.md]

出力

バージョン

言語

  • C++14

処理系