Move folly/BitIterator.h to folly/container/
[folly.git] / folly / stop_watch.h
index 5bac22a2e373a2e9e462f0267d81cf4ed72a9e7f..5fbbda9b6ba23a19a498839daa6bd91682d58c80 100644 (file)
 
 #pragma once
 
-#include <folly/portability/Time.h>
 #include <chrono>
 #include <stdexcept>
 #include <utility>
 
-namespace folly {
-
-#ifdef CLOCK_MONOTONIC_COARSE
-struct monotonic_coarse_clock {
-  typedef std::chrono::milliseconds::rep rep;
-  typedef std::chrono::milliseconds::period period;
-  typedef std::chrono::milliseconds duration;
-  typedef std::chrono::time_point<monotonic_coarse_clock> time_point;
-  constexpr static bool is_steady = true;
+#include <folly/Chrono.h>
+#include <folly/portability/Time.h>
 
-  static time_point now() {
-    timespec ts;
-    auto ret = clock_gettime(CLOCK_MONOTONIC_COARSE, &ts);
-    if (ret != 0) {
-      throw std::runtime_error("Error using CLOCK_MONOTONIC_COARSE.");
-    }
-    return time_point(
-        duration((ts.tv_sec * 1000) + ((ts.tv_nsec / 1000) / 1000)));
-  }
-};
-#else
-using monotonic_coarse_clock = std::chrono::steady_clock;
-#endif
+namespace folly {
 
 using monotonic_clock = std::chrono::steady_clock;
 
@@ -299,8 +279,9 @@ struct custom_stop_watch {
  *
  * @author: Marcelo Juchem <marcelo@fb.com>
  */
-template <typename Duration = monotonic_coarse_clock::duration>
-using coarse_stop_watch = custom_stop_watch<monotonic_coarse_clock, Duration>;
+template <typename Duration = folly::chrono::coarse_steady_clock::duration>
+using coarse_stop_watch =
+    custom_stop_watch<folly::chrono::coarse_steady_clock, Duration>;
 
 /**
  * A type alias for `custom_stop_watch` that uses a monotonic clock as the time
@@ -319,6 +300,6 @@ using coarse_stop_watch = custom_stop_watch<monotonic_coarse_clock, Duration>;
  *
  * @author: Marcelo Juchem <marcelo@fb.com>
  */
-template <typename Duration = monotonic_clock::duration>
-using stop_watch = custom_stop_watch<monotonic_clock, Duration>;
+template <typename Duration = std::chrono::steady_clock::duration>
+using stop_watch = custom_stop_watch<std::chrono::steady_clock, Duration>;
 } // namespace folly