Index: base/spin_lock.h |
diff --git a/third_party/WebKit/Source/wtf/SpinLock.h b/base/spin_lock.h |
similarity index 80% |
copy from third_party/WebKit/Source/wtf/SpinLock.h |
copy to base/spin_lock.h |
index 93cc17c77b3473c1ebdefe591ced4f174d0ecc62..6e0a75ed03b0114224d424ae2bba961bdfeb9364 100644 |
--- a/third_party/WebKit/Source/wtf/SpinLock.h |
+++ b/base/spin_lock.h |
@@ -28,49 +28,47 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef WTF_SpinLock_h |
-#define WTF_SpinLock_h |
+#ifndef BASE_OPTIONAL_H |
+#define BASE_OPTIONAL_H |
-#include "wtf/Compiler.h" |
-#include "wtf/WTFExport.h" |
#include <atomic> |
#include <memory> |
#include <mutex> |
-// DESCRIPTION |
+#include "base/base_export.h" |
+#include "base/compiler_specific.h" |
+ |
// Spinlock is a simple spinlock class based on the standard CPU primitive of |
// atomic increment and decrement of an int at a given memory address. These are |
// intended only for very short duration locks and assume a system with multiple |
// cores. For any potentially longer wait you should be using a real lock. |
-namespace WTF { |
+namespace base { |
class SpinLock { |
public: |
using Guard = std::lock_guard<SpinLock>; |
+ SpinLock(); |
+ |
ALWAYS_INLINE void lock() { |
- static_assert(sizeof(m_lock) == sizeof(int), |
- "int and m_lock are different sizes"); |
- if (LIKELY(!m_lock.exchange(true, std::memory_order_acquire))) |
+ static_assert(sizeof(lock_) == sizeof(int), |
+ "int and lock_ are different sizes"); |
+ if (LIKELY(!lock_.exchange(true, std::memory_order_acquire))) |
return; |
- lockSlow(); |
+ LockSlow(); |
} |
- ALWAYS_INLINE void unlock() { |
- m_lock.store(false, std::memory_order_release); |
- } |
+ ALWAYS_INLINE void unlock() { lock_.store(false, std::memory_order_release); } |
private: |
// This is called if the initial attempt to acquire the lock fails. It's |
// slower, but has a much better scheduling and power consumption behavior. |
- WTF_EXPORT void lockSlow(); |
+ BASE_EXPORT void LockSlow(); |
- std::atomic_int m_lock; |
+ std::atomic_int lock_; |
}; |
-} // namespace WTF |
- |
-using WTF::SpinLock; |
+} // namespace base |
-#endif // WTF_SpinLock_h |
+#endif // BASE_OPTIONAL_H |