diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-07-11 22:48:30 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-07-11 22:48:30 +0800 |
| commit | 3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee (patch) | |
| tree | 4bd5a49ef60ad1e371c0984cd46838368c5ef83a /third_party/libcxx/include/c++/v1/thread | |
| parent | 48ef95c24e9ac3d11200b61af617a01b10b507d1 (diff) | |
| download | lume-3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee.tar.gz lume-3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee.tar.xz | |
lib: establish Zircon libc++ and KTL foundation
Diffstat (limited to 'third_party/libcxx/include/c++/v1/thread')
| -rw-r--r-- | third_party/libcxx/include/c++/v1/thread | 133 |
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 |
