| 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
|
|
|