Remove folly/detail/UncaughtExceptionCounter.h
authorYedidya Feldblum <yfeldblum@fb.com>
Tue, 26 Dec 2017 21:34:14 +0000 (13:34 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 26 Dec 2017 21:35:23 +0000 (13:35 -0800)
Summary:
[Folly] Remove `folly/detail/UncaughtExceptionCounter.h`.

It's a thin and unnecessary shell around `folly/UncaughtExceptions.h`.

Reviewed By: Orvid

Differential Revision: D6636260

fbshipit-source-id: cdf6fa5fefc9fd69586c1c4c1a8443c5e8543b1c

folly/Makefile.am
folly/ScopeGuard.h
folly/detail/UncaughtExceptionCounter.h [deleted file]

index 19f31af42482c40620d847672732ae00a0a8d9cf..9bc83a13cb0caa5e4979b568da0a0c1a07e53a5d 100644 (file)
@@ -86,7 +86,6 @@ nobase_follyinclude_HEADERS = \
        detail/ThreadLocalDetail.h \
        detail/TypeList.h \
        detail/TurnSequencer.h \
-       detail/UncaughtExceptionCounter.h \
        executors/Async.h \
        executors/CPUThreadPoolExecutor.h \
        executors/Codel.h \
index a8c269147a068ae948d56cf155244f05d3ad250a..68043c355171d578705bd1caaaf929d8ed70a4a1 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <folly/Portability.h>
 #include <folly/Preprocessor.h>
-#include <folly/detail/UncaughtExceptionCounter.h>
+#include <folly/UncaughtExceptions.h>
 
 namespace folly {
 
@@ -204,25 +204,19 @@ namespace detail {
  *
  * Used to implement SCOPE_FAIL and SCOPE_SUCCESS below.
  */
-template <typename FunctionType, bool executeOnException>
+template <typename FunctionType, bool ExecuteOnException>
 class ScopeGuardForNewException {
  public:
-  explicit ScopeGuardForNewException(const FunctionType& fn)
-      : function_(fn) {
-  }
+  explicit ScopeGuardForNewException(const FunctionType& fn) : function_(fn) {}
 
   explicit ScopeGuardForNewException(FunctionType&& fn)
-      : function_(std::move(fn)) {
-  }
+      : function_(std::move(fn)) {}
 
-  ScopeGuardForNewException(ScopeGuardForNewException&& other)
-      : function_(std::move(other.function_))
-      , exceptionCounter_(std::move(other.exceptionCounter_)) {
-  }
+  ScopeGuardForNewException(ScopeGuardForNewException&& other) = default;
 
-  ~ScopeGuardForNewException() noexcept(executeOnException) {
-    if (executeOnException == exceptionCounter_.isNewUncaughtException()) {
-      if (executeOnException) {
+  ~ScopeGuardForNewException() noexcept(ExecuteOnException) {
+    if (ExecuteOnException == (exceptionCounter_ < uncaught_exceptions())) {
+      if (ExecuteOnException) {
         ScopeGuardImplBase::runAndWarnAboutToCrashOnException(function_);
       } else {
         function_();
@@ -236,7 +230,7 @@ class ScopeGuardForNewException {
   void* operator new(std::size_t) = delete;
 
   FunctionType function_;
-  UncaughtExceptionCounter exceptionCounter_;
+  int exceptionCounter_{uncaught_exceptions()};
 };
 
 /**
diff --git a/folly/detail/UncaughtExceptionCounter.h b/folly/detail/UncaughtExceptionCounter.h
deleted file mode 100644 (file)
index 4170c21..0000000
+++ /dev/null
@@ -1,51 +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
-
-#include <exception>
-
-#include <folly/UncaughtExceptions.h>
-
-namespace folly { namespace detail {
-
-/**
- * Used to check if a new uncaught exception was thrown by monitoring the
- * number of uncaught exceptions.
- *
- * Usage:
- *  - create a new UncaughtExceptionCounter object
- *  - call isNewUncaughtException() on the new object to check if a new
- *    uncaught exception was thrown since the object was created
- */
-class UncaughtExceptionCounter {
- public:
-  UncaughtExceptionCounter() noexcept
-      : exceptionCount_(folly::uncaught_exceptions()) {}
-
-  UncaughtExceptionCounter(const UncaughtExceptionCounter& other) noexcept
-      : exceptionCount_(other.exceptionCount_) {}
-
-  bool isNewUncaughtException() noexcept {
-    return folly::uncaught_exceptions() > exceptionCount_;
-  }
-
- private:
-  int exceptionCount_;
-};
-
-} // namespace detail
-} // namespace folly