summaryrefslogtreecommitdiff
path: root/third_party/libcxx/include/c++/v1/thread
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libcxx/include/c++/v1/thread')
-rw-r--r--third_party/libcxx/include/c++/v1/thread133
1 files changed, 133 insertions, 0 deletions
diff --git a/third_party/libcxx/include/c++/v1/thread b/third_party/libcxx/include/c++/v1/thread
new file mode 100644
index 0000000..029ed41
--- /dev/null
+++ b/third_party/libcxx/include/c++/v1/thread
@@ -0,0 +1,133 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_THREAD
+#define _LIBCPP_THREAD
+
+/*
+
+ thread synopsis
+
+namespace std
+{
+
+class thread
+{
+public:
+ class id;
+ typedef pthread_t native_handle_type;
+
+ thread() noexcept;
+ template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
+ ~thread();
+
+ thread(const thread&) = delete;
+ thread(thread&& t) noexcept;
+
+ thread& operator=(const thread&) = delete;
+ thread& operator=(thread&& t) noexcept;
+
+ void swap(thread& t) noexcept;
+
+ bool joinable() const noexcept;
+ void join();
+ void detach();
+ id get_id() const noexcept;
+ native_handle_type native_handle();
+
+ static unsigned hardware_concurrency() noexcept;
+};
+
+void swap(thread& x, thread& y) noexcept;
+
+class thread::id
+{
+public:
+ id() noexcept;
+};
+
+bool operator==(thread::id x, thread::id y) noexcept;
+bool operator!=(thread::id x, thread::id y) noexcept; // removed in C++20
+bool operator< (thread::id x, thread::id y) noexcept; // removed in C++20
+bool operator<=(thread::id x, thread::id y) noexcept; // removed in C++20
+bool operator> (thread::id x, thread::id y) noexcept; // removed in C++20
+bool operator>=(thread::id x, thread::id y) noexcept; // removed in C++20
+strong_ordering operator<=>(thread::id x, thread::id y) noexcept; // C++20
+
+template<class charT, class traits>
+basic_ostream<charT, traits>&
+operator<<(basic_ostream<charT, traits>& out, thread::id id);
+
+template<class charT>
+struct formatter<thread::id, charT>;
+
+namespace this_thread
+{
+
+thread::id get_id() noexcept;
+
+void yield() noexcept;
+
+template <class Clock, class Duration>
+void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
+
+template <class Rep, class Period>
+void sleep_for(const chrono::duration<Rep, Period>& rel_time);
+
+} // this_thread
+
+} // std
+
+*/
+
+#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
+# include <__cxx03/thread>
+#else
+# include <__config>
+
+# if _LIBCPP_HAS_THREADS
+
+# include <__thread/this_thread.h>
+# include <__thread/thread.h>
+
+# if _LIBCPP_STD_VER >= 20
+# include <__thread/jthread.h>
+# endif
+
+# if _LIBCPP_STD_VER >= 23
+# include <__thread/formatter.h>
+# endif
+
+# include <version>
+
+// standard-mandated includes
+
+// [thread.syn]
+# include <compare>
+
+# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+# pragma GCC system_header
+# endif
+
+# endif // _LIBCPP_HAS_THREADS
+
+# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono>
+# endif
+
+# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+# include <cstring>
+# include <functional>
+# include <new>
+# include <system_error>
+# include <type_traits>
+# endif
+#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
+
+#endif // _LIBCPP_THREAD