HomePhabricator

[libc++] Cleanup and document <__threading_support>

Description

[libc++] Cleanup and document <__threading_support>

Summary:
This patch attempts to clean up the macro configuration mess in <__threading_support>, specifically the mess involving external threading variants. Additionally this patch adds design documentation for <__threading_support> and the configuration macros it uses.

The primary change in this patch is separating the idea of an "external API" provided by <__external_threading> and the idea of having an external threading library. Now _LIBCPP_HAS_THREAD_API_EXTERNAL means that libc++ should use <__external_threading> and that the header is expected to exist. Additionally the new macro _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL is now used to configure for using an "external library" with the default threading API.

Reviewers: compnerd, rmaprath

Subscribers: smeenai, cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D28316

Details

Committed
EricWFJan 6 2017, 12:05 PM
Differential Revision
D28316: [libc++] Cleanup and document <__threading_support>
Parents
rL291274: [X86][SSE] Standardized triples in vector shift tests
Branches
Unknown
Tags
Unknown