[Support] Make sure sys::fs::remove can remove symbolic links and make sure LockFileManager can handle a symbolic link that points nowhere.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204422 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Argyrios Kyrtzidis
2014-03-21 01:25:37 +00:00
parent 5b460ed4cd
commit 2c8cd9a0ba
3 changed files with 37 additions and 8 deletions
+3 -6
View File
@@ -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;