Index: include/__config =================================================================== --- include/__config +++ include/__config @@ -1100,17 +1100,18 @@ // The Apple, glibc, and Bionic implementation of pthreads implements // pthread_mutex_destroy as nop for regular mutexes. Additionally, Win32 // mutexes have no destroy mechanism. -// TODO(EricWF): Enable this optimization on Apple and Bionic platforms after +// TODO(EricWF): Enable this optimization on Apple platforms after // speaking to their respective stakeholders. -#if (defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && defined(__GLIBC__)) \ +#if (defined(_LIBCPP_HAS_THREAD_API_PTHREAD) \ + && (defined(__GLIBC__) || defined(__BIONIC__))) \ || defined(_LIBCPP_HAS_THREAD_API_WIN32) # define _LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION #endif -// Destroying a condvar is a nop on Windows. -// TODO(EricWF): This is potentially true for some pthread implementations -// as well. -#if defined(_LIBCPP_HAS_THREAD_API_WIN32) +// Destroying a condvar is a nop on Windows, as well as with the Bionic +// implementations of pthreads +#if (defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && defined(__BIONIC__)) \ + || defined(_LIBCPP_HAS_THREAD_API_WIN32) # define _LIBCPP_HAS_TRIVIAL_CONDVAR_DESTRUCTION #endif