summaryrefslogtreecommitdiffstats
path: root/src/algorithm.cpp
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-01-07 21:08:01 +0000
committerdim <dim@FreeBSD.org>2015-01-07 21:08:01 +0000
commit083c980732b44eb899ce399cf182dec9b90b9a1d (patch)
tree41f38760e19d47a9e21d0f64ece2bddaaab8aaf7 /src/algorithm.cpp
parentc3e10da3dc0f616b78ccf85206fdcf4c92f8ac85 (diff)
downloadFreeBSD-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.cpp9
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
OpenPOWER on IntegriCloud