Index: base/synchronization/lock_impl_win.cc |
diff --git a/base/synchronization/lock_impl_win.cc b/base/synchronization/lock_impl_win.cc |
index fbc1bdd464b01254fb4bef8a9e2f1053553d3a07..d89a131a7a8a8fb84950baaaf572334e36fa85b8 100644 |
--- a/base/synchronization/lock_impl_win.cc |
+++ b/base/synchronization/lock_impl_win.cc |
@@ -7,29 +7,20 @@ |
namespace base { |
namespace internal { |
-LockImpl::LockImpl() { |
- // The second parameter is the spin count, for short-held locks it avoid the |
- // contending thread from going to sleep which helps performance greatly. |
- ::InitializeCriticalSectionAndSpinCount(&native_handle_, 2000); |
-} |
+LockImpl::LockImpl() : native_handle_(SRWLOCK_INIT) {} |
-LockImpl::~LockImpl() { |
- ::DeleteCriticalSection(&native_handle_); |
-} |
+LockImpl::~LockImpl() = default; |
bool LockImpl::Try() { |
- if (::TryEnterCriticalSection(&native_handle_) != FALSE) { |
- return true; |
- } |
- return false; |
+ return !!::TryAcquireSRWLockExclusive(&native_handle_); |
} |
void LockImpl::Lock() { |
- ::EnterCriticalSection(&native_handle_); |
+ ::AcquireSRWLockExclusive(&native_handle_); |
} |
void LockImpl::Unlock() { |
- ::LeaveCriticalSection(&native_handle_); |
+ ::ReleaseSRWLockExclusive(&native_handle_); |
} |
} // namespace internal |