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