diff --git a/libcxx/include/barrier b/libcxx/include/barrier index fcfc96cb0484c..9e7150fec1480 100644 --- a/libcxx/include/barrier +++ b/libcxx/include/barrier @@ -45,11 +45,16 @@ namespace std */ +#include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__atomic/atomic_base.h> #include <__atomic/memory_order.h> #include <__availability> -#include <__config> #include <__memory/unique_ptr.h> #include <__thread/poll_with_backoff.h> #include <__thread/timed_backoff_policy.h> @@ -63,10 +68,6 @@ namespace std # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - _LIBCPP_PUSH_MACROS #include <__undef_macros> diff --git a/libcxx/include/future b/libcxx/include/future index 92ba188210691..5602ae41c1423 100644 --- a/libcxx/include/future +++ b/libcxx/include/future @@ -362,11 +362,16 @@ template struct uses_allocator, Alloc>; */ +#include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__availability> #include <__chrono/duration.h> #include <__chrono/time_point.h> -#include <__config> #include <__exception/exception_ptr.h> #include <__memory/addressof.h> #include <__memory/allocator.h> @@ -396,10 +401,6 @@ template struct uses_allocator, Alloc>; # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - _LIBCPP_BEGIN_NAMESPACE_STD // enum class future_errc diff --git a/libcxx/include/latch b/libcxx/include/latch index ef52c0562a7c5..742452517ddc5 100644 --- a/libcxx/include/latch +++ b/libcxx/include/latch @@ -40,12 +40,17 @@ namespace std */ +#include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__atomic/atomic_base.h> #include <__atomic/atomic_sync.h> #include <__atomic/memory_order.h> #include <__availability> -#include <__config> #include #include #include @@ -54,10 +59,6 @@ namespace std # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - _LIBCPP_PUSH_MACROS #include <__undef_macros> diff --git a/libcxx/include/semaphore b/libcxx/include/semaphore index de45b8b5db101..ca5b2a312433c 100644 --- a/libcxx/include/semaphore +++ b/libcxx/include/semaphore @@ -45,13 +45,18 @@ using binary_semaphore = counting_semaphore<1>; */ +#include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__atomic/atomic_base.h> #include <__atomic/atomic_sync.h> #include <__atomic/memory_order.h> #include <__availability> #include <__chrono/time_point.h> -#include <__config> #include <__thread/poll_with_backoff.h> #include <__thread/timed_backoff_policy.h> #include <__threading_support> @@ -63,10 +68,6 @@ using binary_semaphore = counting_semaphore<1>; # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - _LIBCPP_PUSH_MACROS #include <__undef_macros> diff --git a/libcxx/include/shared_mutex b/libcxx/include/shared_mutex index 1528d108d7493..ac66b3a568bf2 100644 --- a/libcxx/include/shared_mutex +++ b/libcxx/include/shared_mutex @@ -122,13 +122,18 @@ template */ +#include <__config> + +# ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +# endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__availability> #include <__chrono/duration.h> #include <__chrono/steady_clock.h> #include <__chrono/time_point.h> #include <__condition_variable/condition_variable.h> -#include <__config> #include <__memory/addressof.h> #include <__mutex/mutex.h> #include <__mutex/tag_types.h> @@ -147,10 +152,6 @@ _LIBCPP_PUSH_MACROS # pragma GCC system_header # endif -# ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -# endif - _LIBCPP_BEGIN_NAMESPACE_STD struct _LIBCPP_EXPORTED_FROM_ABI __shared_mutex_base { diff --git a/libcxx/include/stop_token b/libcxx/include/stop_token index b223ceb27f0d2..66c7a6ab5996c 100644 --- a/libcxx/include/stop_token +++ b/libcxx/include/stop_token @@ -31,8 +31,13 @@ namespace std { */ -#include <__assert> // all public C++ headers provide the assertion handler #include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + +#include <__assert> // all public C++ headers provide the assertion handler #include <__stop_token/stop_callback.h> #include <__stop_token/stop_source.h> #include <__stop_token/stop_token.h> @@ -42,10 +47,6 @@ namespace std { # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/thread b/libcxx/include/thread index 1cf22bf6aaf9d..84c80d04cf03c 100644 --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -86,9 +86,14 @@ void sleep_for(const chrono::duration& rel_time); */ +#include <__config> + +#ifdef _LIBCPP_HAS_NO_THREADS +# error " is not supported since libc++ has been configured without support for threads." +#endif + #include <__assert> // all public C++ headers provide the assertion handler #include <__availability> -#include <__config> #include <__thread/formatter.h> #include <__thread/jthread.h> #include <__thread/this_thread.h> @@ -105,10 +110,6 @@ void sleep_for(const chrono::duration& rel_time); # pragma GCC system_header #endif -#ifdef _LIBCPP_HAS_NO_THREADS -# error " is not supported since libc++ has been configured without support for threads." -#endif - #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) # include # include