brintos

brintos / llvm-project-archived public Read only

0
0
Text · 930 B · 588d833 Raw
37 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <mutex>10 11// template <class Mutex> class unique_lock;12 13// unique_lock& operator=(unique_lock&& u);14 15#include <cassert>16#include <memory>17#include <mutex>18 19#include "checking_mutex.h"20 21int main(int, char**) {22  checking_mutex m0;23  checking_mutex m1;24  std::unique_lock<checking_mutex> lk0(m0);25  std::unique_lock<checking_mutex> lk1(m1);26 27  auto& result = (lk1 = std::move(lk0));28 29  assert(&result == &lk1);30  assert(lk1.mutex() == std::addressof(m0));31  assert(lk1.owns_lock());32  assert(lk0.mutex() == nullptr);33  assert(!lk0.owns_lock());34 35  return 0;36}37