xref: /freebsd/contrib/llvm-project/libcxx/modules/std/mutex.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric// -*- C++ -*-
2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3*5f757f3fSDimitry Andric//
4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*5f757f3fSDimitry Andric//
8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
9*5f757f3fSDimitry Andric
10*5f757f3fSDimitry Andricexport namespace std {
11*5f757f3fSDimitry Andric#ifndef _LIBCPP_HAS_NO_THREADS
12*5f757f3fSDimitry Andric  // [thread.mutex.class], class mutex
13*5f757f3fSDimitry Andric  using std::mutex;
14*5f757f3fSDimitry Andric  // [thread.mutex.recursive], class recursive_mutex
15*5f757f3fSDimitry Andric  using std::recursive_mutex;
16*5f757f3fSDimitry Andric  // [thread.timedmutex.class] class timed_mutex
17*5f757f3fSDimitry Andric  using std::timed_mutex;
18*5f757f3fSDimitry Andric  // [thread.timedmutex.recursive], class recursive_timed_mutex
19*5f757f3fSDimitry Andric  using std::recursive_timed_mutex;
20*5f757f3fSDimitry Andric
21*5f757f3fSDimitry Andric  using std::adopt_lock_t;
22*5f757f3fSDimitry Andric  using std::defer_lock_t;
23*5f757f3fSDimitry Andric  using std::try_to_lock_t;
24*5f757f3fSDimitry Andric
25*5f757f3fSDimitry Andric  using std::adopt_lock;
26*5f757f3fSDimitry Andric  using std::defer_lock;
27*5f757f3fSDimitry Andric  using std::try_to_lock;
28*5f757f3fSDimitry Andric
29*5f757f3fSDimitry Andric  // [thread.lock], locks
30*5f757f3fSDimitry Andric  using std::lock_guard;
31*5f757f3fSDimitry Andric  using std::scoped_lock;
32*5f757f3fSDimitry Andric  using std::unique_lock;
33*5f757f3fSDimitry Andric
34*5f757f3fSDimitry Andric  using std::swap;
35*5f757f3fSDimitry Andric
36*5f757f3fSDimitry Andric  // [thread.lock.algorithm], generic locking algorithms
37*5f757f3fSDimitry Andric  using std::lock;
38*5f757f3fSDimitry Andric  using std::try_lock;
39*5f757f3fSDimitry Andric#endif // _LIBCPP_HAS_NO_THREADS
40*5f757f3fSDimitry Andric
41*5f757f3fSDimitry Andric  using std::once_flag;
42*5f757f3fSDimitry Andric
43*5f757f3fSDimitry Andric  using std::call_once;
44*5f757f3fSDimitry Andric} // namespace std
45