json.h \
lang/Assume.h \
lang/Launder.h \
+ lang/SafeAssert.h \
Lazy.h \
LifoSem.h \
Likely.h \
Range.h \
Replaceable.h \
RWSpinLock.h \
- SafeAssert.h \
ScopeGuard.h \
SharedMutex.h \
Singleton.h \
io/async/ssl/SSLErrors.cpp \
json.cpp \
lang/Assume.cpp \
+ lang/SafeAssert.cpp \
detail/MemoryIdler.cpp \
detail/SocketFastOpen.cpp \
MacAddress.cpp \
portability/Time.cpp \
portability/Unistd.cpp \
Random.cpp \
- SafeAssert.cpp \
ScopeGuard.cpp \
SharedMutex.cpp \
MicroLock.cpp \
+++ /dev/null
-/*
- * 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.
- */
-
-#include <folly/SafeAssert.h>
-
-#include <folly/Conv.h>
-#include <folly/FileUtil.h>
-
-namespace folly { namespace detail {
-
-namespace {
-void writeStderr(const char* s, size_t len) {
- writeFull(STDERR_FILENO, s, len);
-}
-void writeStderr(const char* s) {
- writeStderr(s, strlen(s));
-}
-} // namespace
-
-void assertionFailure(const char* expr, const char* msg, const char* file,
- unsigned int line, const char* function) {
- writeStderr("\n\nAssertion failure: ");
- writeStderr(expr + 1, strlen(expr) - 2);
- writeStderr("\nMessage: ");
- writeStderr(msg);
- writeStderr("\nFile: ");
- writeStderr(file);
- writeStderr("\nLine: ");
- char buf[20];
- uint32_t n = uint64ToBufferUnsafe(line, buf);
- writeFull(STDERR_FILENO, buf, n);
- writeStderr("\nFunction: ");
- writeStderr(function);
- writeStderr("\n");
- fsyncNoInt(STDERR_FILENO);
- abort();
-}
-
-} // namespace detail
-} // namespace folly
+++ /dev/null
-/*
- * 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
-
-#include <folly/Portability.h>
-#include <folly/Preprocessor.h>
-
-/**
- * Verify that the expression is true. If not, prints an error message
- * (containing msg) to stderr and abort()s. Just like CHECK(), but only
- * logs to stderr and only does async-signal-safe calls.
- */
-#define FOLLY_SAFE_CHECK_IMPL(expr, expr_s, msg) \
- ((expr) ? static_cast<void>(0) : \
- ::folly::detail::assertionFailure( \
- FB_STRINGIZE(expr_s), (msg), __FILE__, __LINE__, __PRETTY_FUNCTION__))
-#define FOLLY_SAFE_CHECK(expr, msg) FOLLY_SAFE_CHECK_IMPL((expr), (expr), (msg))
-
-/**
- * In debug mode, verify that the expression is true. Otherwise, do nothing
- * (do not even evaluate expr). Just like DCHECK(), but only logs to stderr and
- * only does async-signal-safe calls.
- */
-#define FOLLY_SAFE_DCHECK(expr, msg) \
- FOLLY_SAFE_CHECK_IMPL(!folly::kIsDebug || (expr), (expr), (msg))
-
-namespace folly { namespace detail {
-
-[[noreturn]] void assertionFailure(
- const char* expr,
- const char* msg,
- const char* file,
- unsigned int line,
- const char* function);
-} // namespace detail
-} // namespace folly
#pragma once
-#include <folly/SafeAssert.h>
+#include <folly/lang/SafeAssert.h>
#include <stdint.h>
#include <folly/Conv.h>
#include <folly/Likely.h>
#include <folly/Range.h>
-#include <folly/SafeAssert.h>
+#include <folly/lang/SafeAssert.h>
namespace folly {
namespace symbolizer {
--- /dev/null
+/*
+ * 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.
+ */
+
+#include <folly/lang/SafeAssert.h>
+
+#include <folly/Conv.h>
+#include <folly/FileUtil.h>
+
+namespace folly { namespace detail {
+
+namespace {
+void writeStderr(const char* s, size_t len) {
+ writeFull(STDERR_FILENO, s, len);
+}
+void writeStderr(const char* s) {
+ writeStderr(s, strlen(s));
+}
+} // namespace
+
+void assertionFailure(const char* expr, const char* msg, const char* file,
+ unsigned int line, const char* function) {
+ writeStderr("\n\nAssertion failure: ");
+ writeStderr(expr + 1, strlen(expr) - 2);
+ writeStderr("\nMessage: ");
+ writeStderr(msg);
+ writeStderr("\nFile: ");
+ writeStderr(file);
+ writeStderr("\nLine: ");
+ char buf[20];
+ uint32_t n = uint64ToBufferUnsafe(line, buf);
+ writeFull(STDERR_FILENO, buf, n);
+ writeStderr("\nFunction: ");
+ writeStderr(function);
+ writeStderr("\n");
+ fsyncNoInt(STDERR_FILENO);
+ abort();
+}
+
+} // namespace detail
+} // namespace folly
--- /dev/null
+/*
+ * 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
+
+#include <folly/Portability.h>
+#include <folly/Preprocessor.h>
+
+/**
+ * Verify that the expression is true. If not, prints an error message
+ * (containing msg) to stderr and abort()s. Just like CHECK(), but only
+ * logs to stderr and only does async-signal-safe calls.
+ */
+#define FOLLY_SAFE_CHECK_IMPL(expr, expr_s, msg) \
+ ((expr) ? static_cast<void>(0) : \
+ ::folly::detail::assertionFailure( \
+ FB_STRINGIZE(expr_s), (msg), __FILE__, __LINE__, __PRETTY_FUNCTION__))
+#define FOLLY_SAFE_CHECK(expr, msg) FOLLY_SAFE_CHECK_IMPL((expr), (expr), (msg))
+
+/**
+ * In debug mode, verify that the expression is true. Otherwise, do nothing
+ * (do not even evaluate expr). Just like DCHECK(), but only logs to stderr and
+ * only does async-signal-safe calls.
+ */
+#define FOLLY_SAFE_DCHECK(expr, msg) \
+ FOLLY_SAFE_CHECK_IMPL(!folly::kIsDebug || (expr), (expr), (msg))
+
+namespace folly { namespace detail {
+
+[[noreturn]] void assertionFailure(
+ const char* expr,
+ const char* msg,
+ const char* file,
+ unsigned int line,
+ const char* function);
+} // namespace detail
+} // namespace folly
--- /dev/null
+/*
+ * 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.
+ */
+
+#include <folly/lang/SafeAssert.h>
+
+#include <glog/logging.h>
+
+#include <folly/Benchmark.h>
+#include <folly/portability/GTest.h>
+
+using namespace folly;
+
+[[noreturn]] void fail() {
+ FOLLY_SAFE_CHECK(0 + 0, "hello");
+}
+
+void succeed() {
+ FOLLY_SAFE_CHECK(1, "world");
+}
+
+TEST(SafeAssert, AssertionFailure) {
+ succeed();
+ EXPECT_DEATH(fail(), "Assertion failure: 0 \\+ 0");
+ EXPECT_DEATH(fail(), "Message: hello");
+}
+++ /dev/null
-/*
- * 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.
- */
-
-#include <folly/SafeAssert.h>
-
-#include <glog/logging.h>
-
-#include <folly/Benchmark.h>
-#include <folly/portability/GTest.h>
-
-using namespace folly;
-
-[[noreturn]] void fail() {
- FOLLY_SAFE_CHECK(0 + 0, "hello");
-}
-
-void succeed() {
- FOLLY_SAFE_CHECK(1, "world");
-}
-
-TEST(SafeAssert, AssertionFailure) {
- succeed();
- EXPECT_DEATH(fail(), "Assertion failure: 0 \\+ 0");
- EXPECT_DEATH(fail(), "Message: hello");
-}