#pragma once
+#include <type_traits>
+
#include <folly/detail/SpinLockImpl.h>
namespace folly {
typedef SpinLockGuardImpl<SpinLock> SpinLockGuard;
+namespace detail {
+template <class T>
+struct HasLockUnlock;
+
+template <>
+struct HasLockUnlock<folly::SpinLock> : public std::true_type {};
+}
}
// Test bed for folly/Synchronized.h
#include <folly/Portability.h>
-#include <folly/Synchronized.h>
#include <folly/RWSpinLock.h>
#include <folly/SharedMutex.h>
+#include <folly/SpinLock.h>
+#include <folly/Synchronized.h>
#include <folly/test/SynchronizedTestLib.h>
#include <gtest/gtest.h>
, boost::recursive_timed_mutex
#endif
, boost::shared_mutex
+ , folly::SpinLock
#ifdef RW_SPINLOCK_USE_X86_INTRINSIC_
, folly::RWTicketSpinLock32
, folly::RWTicketSpinLock64