Test UnboundedBlockingQueue in ThreadPoolExecutorTest
[folly.git] / folly / Assume.h
index 8f8074333c2db293b4227372fb8976a0037b9130..73b66a500b8b5ed2f47d1fa99bdb0dff2d232a04 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.
  * limitations under the License.
  */
 
-#pragma once
-
-#include <folly/Portability.h>
-#include <glog/logging.h>
-
-namespace folly {
-
-/**
- * Inform the compiler that the argument can be assumed true. It is
- * undefined behavior if the argument is not actually true, so use
- * with care.
- *
- * Implemented as a function instead of a macro because
- * __builtin_assume does not evaluate its argument at runtime, so it
- * cannot be used with expressions that have side-effects.
- */
-
-FOLLY_ALWAYS_INLINE void assume(bool cond) {
-#ifndef NDEBUG
-  DCHECK(cond);
-#elif defined(__clang__)  // Must go first because Clang also defines __GNUC__.
-  __builtin_assume(cond);
-#elif defined(__GNUC__)
-  if (!cond) { __builtin_unreachable(); }
-#elif defined(_MSC_VER)
-  __assume(cond);
-#else
-  // Do nothing.
-#endif
-}
-
-}  // namespace folly
+#include <folly/lang/Assume.h> // @shim