diff options
author | dim <dim@FreeBSD.org> | 2015-01-07 21:08:01 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-01-07 21:08:01 +0000 |
commit | 083c980732b44eb899ce399cf182dec9b90b9a1d (patch) | |
tree | 41f38760e19d47a9e21d0f64ece2bddaaab8aaf7 /src/algorithm.cpp | |
parent | c3e10da3dc0f616b78ccf85206fdcf4c92f8ac85 (diff) | |
download | FreeBSD-src-083c980732b44eb899ce399cf182dec9b90b9a1d.zip FreeBSD-src-083c980732b44eb899ce399cf182dec9b90b9a1d.tar.gz |
Vendor import of libc++ trunk r224926:
https://llvm.org/svn/llvm-project/libcxx/trunk@224926
Diffstat (limited to 'src/algorithm.cpp')
-rw-r--r-- | src/algorithm.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/algorithm.cpp b/src/algorithm.cpp index 10c4c331..e548856 100644 --- a/src/algorithm.cpp +++ b/src/algorithm.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; #include "algorithm" #include "random" #include "mutex" @@ -48,12 +47,16 @@ template bool __insertion_sort_incomplete<__less<long double>&, long double*>(lo template unsigned __sort5<__less<long double>&, long double*>(long double*, long double*, long double*, long double*, long double*, __less<long double>&); +#ifndef _LIBCPP_HAS_NO_THREADS static pthread_mutex_t __rs_mut = PTHREAD_MUTEX_INITIALIZER; +#endif unsigned __rs_default::__c_ = 0; __rs_default::__rs_default() { +#ifndef _LIBCPP_HAS_NO_THREADS pthread_mutex_lock(&__rs_mut); +#endif __c_ = 1; } @@ -64,8 +67,12 @@ __rs_default::__rs_default(const __rs_default&) __rs_default::~__rs_default() { +#ifndef _LIBCPP_HAS_NO_THREADS if (--__c_ == 0) pthread_mutex_unlock(&__rs_mut); +#else + --__c_; +#endif } __rs_default::result_type |