diff --git a/libcxx/src/random_shuffle.cpp b/libcxx/src/random_shuffle.cpp --- a/libcxx/src/random_shuffle.cpp +++ b/libcxx/src/random_shuffle.cpp @@ -25,7 +25,8 @@ __rs_default::__rs_default() { #ifndef _LIBCPP_HAS_NO_THREADS - __libcpp_mutex_lock(&__rs_mut); + if (__libcpp_is_threading_api_enabled()) + __libcpp_mutex_lock(&__rs_mut); #endif __c_ = 1; } @@ -38,8 +39,8 @@ __rs_default::~__rs_default() { #ifndef _LIBCPP_HAS_NO_THREADS - if (--__c_ == 0) - __libcpp_mutex_unlock(&__rs_mut); + if (--__c_ == 0 && __libcpp_is_threading_api_enabled()) + __libcpp_mutex_unlock(&__rs_mut); #else --__c_; #endif