diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:39:32 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:39:32 +0000 |
| commit | 51ff47d7a51bc4a1ab5ccc8694fb59b548b488c1 (patch) | |
| tree | f2aeb59006b0fbacfd814a37d74d7486f3dd1870 /contrib/libc++/src | |
| parent | 98ab79066d4153b3ca1003aed6e8186a02902248 (diff) | |
Notes
Diffstat (limited to 'contrib/libc++/src')
| -rw-r--r-- | contrib/libc++/src/mutex.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/contrib/libc++/src/mutex.cpp b/contrib/libc++/src/mutex.cpp index c61d34bb885b..e31ec83bceaf 100644 --- a/contrib/libc++/src/mutex.cpp +++ b/contrib/libc++/src/mutex.cpp @@ -130,7 +130,7 @@ timed_mutex::unlock() _NOEXCEPT recursive_timed_mutex::recursive_timed_mutex() : __count_(0), - __id_(0) + __id_{} { } @@ -142,9 +142,9 @@ recursive_timed_mutex::~recursive_timed_mutex() void recursive_timed_mutex::lock() { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock<mutex> lk(__m_); - if (__libcpp_thread_id_equal(id, __id_)) + if (id ==__id_) { if (__count_ == numeric_limits<size_t>::max()) __throw_system_error(EAGAIN, "recursive_timed_mutex lock limit reached"); @@ -160,9 +160,9 @@ recursive_timed_mutex::lock() bool recursive_timed_mutex::try_lock() _NOEXCEPT { - __libcpp_thread_id id = __libcpp_thread_get_current_id(); + __thread_id id = this_thread::get_id(); unique_lock<mutex> lk(__m_, try_to_lock); - if (lk.owns_lock() && (__count_ == 0 || __libcpp_thread_id_equal(id, __id_))) + if (lk.owns_lock() && (__count_ == 0 || id == __id_)) { if (__count_ == numeric_limits<size_t>::max()) return false; @@ -179,7 +179,7 @@ recursive_timed_mutex::unlock() _NOEXCEPT unique_lock<mutex> lk(__m_); if (--__count_ == 0) { - __id_ = 0; + __id_.__reset(); lk.unlock(); __cv_.notify_one(); } |
