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/shared_mutex.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/shared_mutex.cpp')
-rw-r--r-- | src/shared_mutex.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/shared_mutex.cpp b/src/shared_mutex.cpp index 5fb22e4..2b78c1f 100644 --- a/src/shared_mutex.cpp +++ b/src/shared_mutex.cpp @@ -7,12 +7,15 @@ // //===----------------------------------------------------------------------===// +#include "__config" +#ifndef _LIBCPP_HAS_NO_THREADS + #define _LIBCPP_BUILDING_SHARED_MUTEX #include "shared_mutex" _LIBCPP_BEGIN_NAMESPACE_STD -shared_mutex::shared_mutex() +shared_timed_mutex::shared_timed_mutex() : __state_(0) { } @@ -20,7 +23,7 @@ shared_mutex::shared_mutex() // Exclusive ownership void -shared_mutex::lock() +shared_timed_mutex::lock() { unique_lock<mutex> lk(__mut_); while (__state_ & __write_entered_) @@ -31,7 +34,7 @@ shared_mutex::lock() } bool -shared_mutex::try_lock() +shared_timed_mutex::try_lock() { unique_lock<mutex> lk(__mut_); if (__state_ == 0) @@ -43,7 +46,7 @@ shared_mutex::try_lock() } void -shared_mutex::unlock() +shared_timed_mutex::unlock() { lock_guard<mutex> _(__mut_); __state_ = 0; @@ -53,7 +56,7 @@ shared_mutex::unlock() // Shared ownership void -shared_mutex::lock_shared() +shared_timed_mutex::lock_shared() { unique_lock<mutex> lk(__mut_); while ((__state_ & __write_entered_) || (__state_ & __n_readers_) == __n_readers_) @@ -64,7 +67,7 @@ shared_mutex::lock_shared() } bool -shared_mutex::try_lock_shared() +shared_timed_mutex::try_lock_shared() { unique_lock<mutex> lk(__mut_); unsigned num_readers = __state_ & __n_readers_; @@ -79,7 +82,7 @@ shared_mutex::try_lock_shared() } void -shared_mutex::unlock_shared() +shared_timed_mutex::unlock_shared() { lock_guard<mutex> _(__mut_); unsigned num_readers = (__state_ & __n_readers_) - 1; @@ -99,3 +102,5 @@ shared_mutex::unlock_shared() _LIBCPP_END_NAMESPACE_STD + +#endif // !_LIBCPP_HAS_NO_THREADS |