Index: include/__mutex_base =================================================================== --- include/__mutex_base +++ include/__mutex_base @@ -34,15 +34,14 @@ class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex { - __libcpp_mutex_t __m_; + __libcpp_mutex_t __m_ = _LIBCPP_MUTEX_INITIALIZER; public: _LIBCPP_INLINE_VISIBILITY #ifndef _LIBCPP_HAS_NO_CONSTEXPR - constexpr mutex() _NOEXCEPT : __m_(_LIBCPP_MUTEX_INITIALIZER) {} -#else - mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;} + constexpr #endif + mutex() _NOEXCEPT = default; ~mutex(); private: @@ -287,15 +286,15 @@ class _LIBCPP_TYPE_VIS condition_variable { - __libcpp_condvar_t __cv_; + __libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER; + public: _LIBCPP_INLINE_VISIBILITY #ifndef _LIBCPP_HAS_NO_CONSTEXPR - constexpr condition_variable() : __cv_(_LIBCPP_CONDVAR_INITIALIZER) {} -#else - condition_variable() {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;} + constexpr #endif - ~condition_variable(); + condition_variable() _NOEXCEPT; + ~condition_variable() _NOEXCEPT; private: condition_variable(const condition_variable&); // = delete;