xref: /freebsd/contrib/llvm-project/libcxx/modules/std/thread.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.thread.class], class thread
13*5f757f3fSDimitry Andric  using std::thread;
14*5f757f3fSDimitry Andric
15*5f757f3fSDimitry Andric  using std::swap;
16*5f757f3fSDimitry Andric
17*5f757f3fSDimitry Andric  // [thread.jthread.class], class jthread
18*5f757f3fSDimitry Andric#  if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN)
19*5f757f3fSDimitry Andric  using std::jthread;
20*5f757f3fSDimitry Andric#  endif
21*5f757f3fSDimitry Andric
22*5f757f3fSDimitry Andric  // [thread.thread.this], namespace this_thread
23*5f757f3fSDimitry Andric  namespace this_thread {
24*5f757f3fSDimitry Andric    using std::this_thread::get_id;
25*5f757f3fSDimitry Andric
26*5f757f3fSDimitry Andric    using std::this_thread::sleep_for;
27*5f757f3fSDimitry Andric    using std::this_thread::sleep_until;
28*5f757f3fSDimitry Andric    using std::this_thread::yield;
29*5f757f3fSDimitry Andric  } // namespace this_thread
30*5f757f3fSDimitry Andric
31*5f757f3fSDimitry Andric  // [thread.thread.id]
32*5f757f3fSDimitry Andric  using std::operator==;
33*5f757f3fSDimitry Andric  using std::operator<=>;
34*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_LOCALIZATION
35*5f757f3fSDimitry Andric  using std::operator<<;
36*5f757f3fSDimitry Andric#  endif // _LIBCPP_HAS_NO_LOCALIZATION
37*5f757f3fSDimitry Andric
38*5f757f3fSDimitry Andric#  if _LIBCPP_STD_VER >= 23
39*5f757f3fSDimitry Andric  using std::formatter;
40*5f757f3fSDimitry Andric#  endif
41*5f757f3fSDimitry Andric
42*5f757f3fSDimitry Andric  using std::hash;
43*5f757f3fSDimitry Andric#endif // _LIBCPP_HAS_NO_THREADS
44*5f757f3fSDimitry Andric} // namespace std
45