Clarify in the docs what belongs in portability/
[folly.git] / folly / MicroSpinLock.h
index 5916dbdc381242842645e531f91e084e0e53b3f3..0453b35599ec3e526633171f386b6285d87679c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
 
 /*
  * N.B. You most likely do _not_ want to use MicroSpinLock or any
- * other kind of spinlock.
+ * other kind of spinlock.  Consider MicroLock instead.
  *
  * In short, spinlocks in preemptive multi-tasking operating systems
  * have serious problems and fast mutexes like std::mutex are almost
@@ -42,7 +42,6 @@
 #include <type_traits>
 #include <boost/noncopyable.hpp>
 #include <cstdlib>
-#include <pthread.h>
 #include <mutex>
 #include <atomic>
 
@@ -105,6 +104,9 @@ struct MicroSpinLock {
                                                         std::memory_order_relaxed);
   }
 };
+static_assert(
+    std::is_pod<MicroSpinLock>::value,
+    "MicroSpinLock must be kept a POD type.");
 
 //////////////////////////////////////////////////////////////////////