aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/LockFileManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
-rw-r--r--llvm/lib/Support/LockFileManager.cpp26
1 files changed, 3 insertions, 23 deletions
diff --git a/llvm/lib/Support/LockFileManager.cpp b/llvm/lib/Support/LockFileManager.cpp
index ec951f3..74cb8fe 100644
--- a/llvm/lib/Support/LockFileManager.cpp
+++ b/llvm/lib/Support/LockFileManager.cpp
@@ -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;
}