rmaprath created this revision. rmaprath added a reviewer: EricWF. rmaprath added a subscriber: cfe-commits.
This fixes a small omission where even when `__external_threading` is provided, we attempt to declare a pthread based threading API. Instead, we should leave out everything for the `__external_threading` header to take care of. The `__threading_support` header provides a proof-of-concept externally threaded `libc++` variant when `_LIBCPP_HAS_THREAD_API_EXTERNAL` is defined. But if the `__external_threading` header is present, we should exclude all of that POC stuff. https://reviews.llvm.org/D25468 Files: include/__threading_support Index: include/__threading_support =================================================================== --- include/__threading_support +++ include/__threading_support @@ -25,17 +25,16 @@ #if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) #if !defined(__clang__) && (_GNUC_VER < 500) #include <__external_threading> -#define _LIBCPP_EXTERNAL_THREADING +#define _LIBCPP_HAS_EXTERNAL_THREADING_HEADER #elif !defined(__has_include) || __has_include(<__external_threading>) #include <__external_threading> -#define _LIBCPP_EXTERNAL_THREADING +#define _LIBCPP_HAS_EXTERNAL_THREADING_HEADER #endif #endif -#if !defined(_LIBCPP_EXTERNAL_THREADING) +#if !defined(_LIBCPP_HAS_EXTERNAL_THREADING_HEADER) #include <pthread.h> #include <sched.h> -#endif #if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) #define _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_FUNC_VIS @@ -242,6 +241,8 @@ _LIBCPP_END_NAMESPACE_STD +#endif // !_LIBCPP_HAS_EXTERNAL_THREADING_HEADER + #endif // _LIBCPP_HAS_NO_THREADS #endif // _LIBCPP_THREADING_SUPPORT
Index: include/__threading_support =================================================================== --- include/__threading_support +++ include/__threading_support @@ -25,17 +25,16 @@ #if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) #if !defined(__clang__) && (_GNUC_VER < 500) #include <__external_threading> -#define _LIBCPP_EXTERNAL_THREADING +#define _LIBCPP_HAS_EXTERNAL_THREADING_HEADER #elif !defined(__has_include) || __has_include(<__external_threading>) #include <__external_threading> -#define _LIBCPP_EXTERNAL_THREADING +#define _LIBCPP_HAS_EXTERNAL_THREADING_HEADER #endif #endif -#if !defined(_LIBCPP_EXTERNAL_THREADING) +#if !defined(_LIBCPP_HAS_EXTERNAL_THREADING_HEADER) #include <pthread.h> #include <sched.h> -#endif #if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) #define _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_FUNC_VIS @@ -242,6 +241,8 @@ _LIBCPP_END_NAMESPACE_STD +#endif // !_LIBCPP_HAS_EXTERNAL_THREADING_HEADER + #endif // _LIBCPP_HAS_NO_THREADS #endif // _LIBCPP_THREADING_SUPPORT
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits