summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/LockFileManager.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-03-21 01:25:37 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-03-21 01:25:37 +0000
commit37575693186976cf7828832e48b4b75edc469cd1 (patch)
tree9011d8b634b05732bd5ca382efbc65ef9784d888 /llvm/lib/Support/LockFileManager.cpp
parentf1b10242c071a049fb4fdf9cf332946ed8dee367 (diff)
downloadbcm5719-llvm-37575693186976cf7828832e48b4b75edc469cd1.tar.gz
bcm5719-llvm-37575693186976cf7828832e48b4b75edc469cd1.zip
[Support] Make sure sys::fs::remove can remove symbolic links and make sure LockFileManager can handle a symbolic link that points nowhere.
llvm-svn: 204422
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
-rw-r--r--llvm/lib/Support/LockFileManager.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/llvm/lib/Support/LockFileManager.cpp b/llvm/lib/Support/LockFileManager.cpp
index ba1047b88ac..c8472d88055 100644
--- a/llvm/lib/Support/LockFileManager.cpp
+++ b/llvm/lib/Support/LockFileManager.cpp
@@ -29,16 +29,13 @@ using namespace llvm;
/// \returns The process ID of the process that owns this lock file
Optional<std::pair<std::string, int> >
LockFileManager::readLockFile(StringRef LockFileName) {
- // Check whether the lock file exists. If not, clearly there's nothing
- // to read, so we just return.
- if (!sys::fs::exists(LockFileName))
- return None;
-
// Read the owning host and PID out of the lock file. If it appears that the
// owning process is dead, the lock file is invalid.
std::unique_ptr<MemoryBuffer> MB;
- if (MemoryBuffer::getFile(LockFileName, MB))
+ if (MemoryBuffer::getFile(LockFileName, MB)) {
+ sys::fs::remove(LockFileName);
return None;
+ }
StringRef Hostname;
StringRef PIDStr;
OpenPOWER on IntegriCloud