EricWF accepted this revision.
EricWF added a comment.
This revision is now accepted and ready to land.

LGTM. I'll re-review the mutexor changes post-commit.



================
Comment at: CMakeLists.txt:121
 option(LIBCXXABI_HAS_PTHREAD_API "Ignore auto-detection and force use of 
pthread API" OFF)
+option(LIBCXXABI_HAS_EXTERNAL_THREAD_API
+  "Build libc++abi with an externalized threading API.
----------------
rmaprath wrote:
> EricWF wrote:
> > Maybe use a dependent option that sets it to the value of 
> > `LIBCXX_ENABLE_THREADS` when it is defined?
> Are you referring to `CMAKE_DEPENDENT_OPTION` macro? I don't see this macro 
> used anywhere else in llvm, but I suppose that's not a concern?
> 
> Although, it would have to be something like:
> 
> ```
> CMAKE_DEPENDENT_OPTION(LIBCXXABI_HAS_EXTERNAL_THREAD_API "Externally Threaded 
> libcxxabi" OFF  "LIBCXX_ENABLE_THREADS" OFF)
> ```
> 
> Because, `LIBCXX_ENABLE_THREADS=ON` should not mean 
> `LIBCXXABI_HAS_EXTERNAL_THREAD_API=ON`.
> 
Ah OK. This looks good as is then.

Although it would be really nice if `LIBCXX_HAS_EXTERNAL_THREAD_API=ON` also 
enabled this option unless otherwise specified, but I don't see an easy way to 
do that. 


================
Comment at: src/fallback_malloc.cpp:37
 class mutexor {
 public:
----------------
rmaprath wrote:
> EricWF wrote:
> > Can't we replace this class with `std::mutex` directly?
> Again, I should've included more context to the patch :(
> 
> The `mutexor` here is supposed to degrade to a nop when threading is 
> disabled. I think we cannot use `std::mutex` without threading support.
> 
> Will update the patch with more context.
We cannot use `std::mutex` without threading support but I would still rather 
use it.

I would `typedef std::lock_guard<std::mutex> mutexor` when threading is enabled 
and otherwise I would just `#ifdef` all usages away.

Also please add `_LIBCPP_SAFE_STATIC` to the heap_mutex declaration.


https://reviews.llvm.org/D27575



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to