Index: third_party/libphonenumber/cpp/src/base/synchronization/lock_impl_win.cc |
=================================================================== |
--- third_party/libphonenumber/cpp/src/base/synchronization/lock_impl_win.cc (revision 0) |
+++ third_party/libphonenumber/cpp/src/base/synchronization/lock_impl_win.cc (revision 0) |
@@ -0,0 +1,36 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/synchronization/lock_impl.h" |
+ |
+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(&os_lock_, 2000); |
+} |
+ |
+LockImpl::~LockImpl() { |
+ ::DeleteCriticalSection(&os_lock_); |
+} |
+ |
+bool LockImpl::Try() { |
+ if (::TryEnterCriticalSection(&os_lock_) != FALSE) { |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+void LockImpl::Lock() { |
+ ::EnterCriticalSection(&os_lock_); |
+} |
+ |
+void LockImpl::Unlock() { |
+ ::LeaveCriticalSection(&os_lock_); |
+} |
+ |
+} // namespace internal |
+} // namespace base |
Property changes on: third_party\libphonenumber\cpp\src\base\synchronization\lock_impl_win.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |