Move folly/detail/Sleeper.h to folly/synchronization/detail/
authorYedidya Feldblum <yfeldblum@fb.com>
Tue, 26 Dec 2017 18:57:54 +0000 (10:57 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 26 Dec 2017 19:08:22 +0000 (11:08 -0800)
Summary: [Folly] Move `folly/detail/Sleeper.h` to `folly/synchronization/detail/`.

Reviewed By: Orvid

Differential Revision: D6636459

fbshipit-source-id: e0b37459fe721c96837b653e652c1bc6bfeb5dce

folly/Makefile.am
folly/MicroSpinLock.h
folly/PicoSpinLock.h
folly/detail/Sleeper.h [deleted file]
folly/synchronization/detail/Sleeper.h [new file with mode: 0644]

index ec1e2e671a7a893707a230b561c4eb6715ddbedb..19f31af42482c40620d847672732ae00a0a8d9cf 100644 (file)
@@ -80,7 +80,6 @@ nobase_follyinclude_HEADERS = \
        detail/PolyDetail.h \
        detail/RangeCommon.h \
        detail/RangeSse42.h \
-       detail/Sleeper.h \
        detail/SlowFingerprint.h \
        detail/SocketFastOpen.h \
        detail/StaticSingletonManager.h \
@@ -440,6 +439,7 @@ nobase_follyinclude_HEADERS = \
        synchronization/CallOnce.h \
        synchronization/LifoSem.h \
        synchronization/detail/AtomicUtils.h \
+       synchronization/detail/Sleeper.h \
        system/MemoryMapping.h \
        system/Shell.h \
        system/ThreadId.h \
index dab80c67609ca38c34b59009a963637034e86174..8996f8c328e1016922a2881ffa6cf98efd5c2fcc 100644 (file)
@@ -45,8 +45,8 @@
 #include <type_traits>
 
 #include <folly/Portability.h>
-#include <folly/detail/Sleeper.h>
 #include <folly/lang/Align.h>
+#include <folly/synchronization/detail/Sleeper.h>
 
 namespace folly {
 
index d9bdf50ce2aaf7c45aea074911afe0fc0d19e952..eb62bee21b2ef63d412f593f64b8daa0d3994a7e 100644 (file)
@@ -48,7 +48,7 @@
 #include <glog/logging.h>
 
 #include <folly/Portability.h>
-#include <folly/detail/Sleeper.h>
+#include <folly/synchronization/detail/Sleeper.h>
 
 #if !FOLLY_X64 && !FOLLY_AARCH64 && !FOLLY_PPC64
 #error "PicoSpinLock.h is currently x64, aarch64 and ppc64 only."
diff --git a/folly/detail/Sleeper.h b/folly/detail/Sleeper.h
deleted file mode 100644 (file)
index ad8127c..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-/*
- * @author Keith Adams <kma@fb.com>
- * @author Jordan DeLong <delong.j@fb.com>
- */
-
-#include <cstdint>
-
-#include <folly/portability/Asm.h>
-#include <folly/portability/Time.h>
-
-namespace folly {
-
-//////////////////////////////////////////////////////////////////////
-
-namespace detail {
-
-/*
- * A helper object for the contended case. Starts off with eager
- * spinning, and falls back to sleeping for small quantums.
- */
-class Sleeper {
-  static const uint32_t kMaxActiveSpin = 4000;
-
-  uint32_t spinCount;
-
- public:
-  Sleeper() : spinCount(0) {}
-
-  void wait() {
-    if (spinCount < kMaxActiveSpin) {
-      ++spinCount;
-      asm_volatile_pause();
-    } else {
-      /*
-       * Always sleep 0.5ms, assuming this will make the kernel put
-       * us down for whatever its minimum timer resolution is (in
-       * linux this varies by kernel version from 1ms to 10ms).
-       */
-      struct timespec ts = {0, 500000};
-      nanosleep(&ts, nullptr);
-    }
-  }
-};
-
-} // namespace detail
-} // namespace folly
diff --git a/folly/synchronization/detail/Sleeper.h b/folly/synchronization/detail/Sleeper.h
new file mode 100644 (file)
index 0000000..ad8127c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/*
+ * @author Keith Adams <kma@fb.com>
+ * @author Jordan DeLong <delong.j@fb.com>
+ */
+
+#include <cstdint>
+
+#include <folly/portability/Asm.h>
+#include <folly/portability/Time.h>
+
+namespace folly {
+
+//////////////////////////////////////////////////////////////////////
+
+namespace detail {
+
+/*
+ * A helper object for the contended case. Starts off with eager
+ * spinning, and falls back to sleeping for small quantums.
+ */
+class Sleeper {
+  static const uint32_t kMaxActiveSpin = 4000;
+
+  uint32_t spinCount;
+
+ public:
+  Sleeper() : spinCount(0) {}
+
+  void wait() {
+    if (spinCount < kMaxActiveSpin) {
+      ++spinCount;
+      asm_volatile_pause();
+    } else {
+      /*
+       * Always sleep 0.5ms, assuming this will make the kernel put
+       * us down for whatever its minimum timer resolution is (in
+       * linux this varies by kernel version from 1ms to 10ms).
+       */
+      struct timespec ts = {0, 500000};
+      nanosleep(&ts, nullptr);
+    }
+  }
+};
+
+} // namespace detail
+} // namespace folly