rmaprath abandoned this revision. rmaprath added a comment. Reason for abandoning: This patch uses opaque pointers to delegate `std::mutex` and `std::condition_variable` types to the underlying platform implementation.
This creates problems given that these two types have `constexpr` constructors. We must make `std::mutex::lock()` (and the like) initialize the internal opaque pointer type before it is used (cannot initialize from the constructor), which in turn implies that the `std::mutex::lock()` method could fail if the implementation cannot allocate memory to hold the underlying platform mutex type - this is not a valid condition for the `std::mutex::lock()` method to fail. Besides, with this workaround, we are essentially trying to beat the purpose of a `constexpr` mutex constructor (be able to statically declare a mutex and use it without any explicit initialization). After discussion with @mclow.lists, we think it's best to have `libc++` vendors know the underlying mutex / condition variable types in advance (`libc++` build time). I will create a new patch to implement this approach soon. http://reviews.llvm.org/D20328 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits