• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <mutex>

    std::unique_lock::owns_lock

    bool owns_lock() const noexcept;
    

    概要

    ロックを取得しているかを確認する

    戻り値

    ロックが取得済みであればtrue、そうでなければfalseを返す。

    例外

    投げない

    #include <cassert>
    #include <mutex>
    
    int main()
    {
      std::mutex mtx;
      {
        std::unique_lock<std::mutex> lk(mtx);
    
        // コンストラクタでロック取得されるのでowns_lock() == true
        assert(lk.owns_lock());
      }
    
      {
        std::unique_lock<std::mutex> lk(mtx, std::defer_lock);
    
        // 遅延ロックのためコンストラクタでロック取得されないので、
        // owns_lock() == false
        assert(!lk.owns_lock());
    
        lk.lock();
    
        // ロック取得後なのでowns_lock() == true
        assert(lk.owns_lock());
      }
    }
    

    出力

    バージョン

    言語

    • C++11

    処理系

    参照