[Support] Replace hand-written scope_exit with make_scope_exit.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 18 Feb 2018 16:05:40 +0000 (16:05 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 18 Feb 2018 16:05:40 +0000 (16:05 +0000)
No functionality change intended.

llvm-svn: 325460

llvm/lib/Support/LockFileManager.cpp

index ec951f3..74cb8fe 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "llvm/Support/LockFileManager.h"
 #include "llvm/ADT/None.h"
+#include "llvm/ADT/ScopeExit.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/Support/Errc.h"
@@ -121,27 +122,6 @@ bool LockFileManager::processStillExecuting(StringRef HostID, int PID) {
   return true;
 }
 
-namespace {
-
-/// An RAII helper object for cleanups.
-class RAIICleanup {
-  std::function<void()> Fn;
-  bool Canceled = false;
-
-public:
-  RAIICleanup(std::function<void()> Fn) : Fn(Fn) {}
-
-  ~RAIICleanup() {
-    if (Canceled)
-      return;
-    Fn();
-  }
-
-  void cancel() { Canceled = true; }
-};
-
-} // end anonymous namespace
-
 LockFileManager::LockFileManager(StringRef FileName)
 {
   this->FileName = FileName;
@@ -172,7 +152,7 @@ LockFileManager::LockFileManager(StringRef FileName)
   UniqueLockFile = std::move(*Temp);
 
   // Make sure we discard the temporary file on exit.
-  RAIICleanup RemoveTempFile([&]() {
+  auto RemoveTempFile = llvm::make_scope_exit([&]() {
     if (Error E = UniqueLockFile->discard())
       setError(errorToErrorCode(std::move(E)));
   });
@@ -209,7 +189,7 @@ LockFileManager::LockFileManager(StringRef FileName)
     std::error_code EC =
         sys::fs::create_link(UniqueLockFile->TmpName, LockFileName);
     if (!EC) {
-      RemoveTempFile.cancel();
+      RemoveTempFile.release();
       return;
     }