summaryrefslogtreecommitdiff
path: root/lib/Support/LockFileManager.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-03-11 18:40:24 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-03-11 18:40:24 +0000
commit8acff70de1d0860b13a4fe9517c286246ad17528 (patch)
tree456df0609cf47f86ea4d68df12eb27f11d69371d /lib/Support/LockFileManager.cpp
parent7e3e9aa8e1eb2f138a6e3a6a9d582c3eb6b08810 (diff)
downloadllvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.gz
llvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.bz2
llvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.xz
Cleanup the interface for creating soft or hard links.
Before this patch the unix code for creating hardlinks was unused. The code for creating symbolic links was implemented in lib/Support/LockFileManager.cpp and the code for creating hard links in lib/Support/*/Path.inc. The only use we have for these is in LockFileManager.cpp and it can use both soft and hard links. Just have a create_link function that creates one or the other depending on the platform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203596 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/LockFileManager.cpp')
-rw-r--r--lib/Support/LockFileManager.cpp33
1 files changed, 3 insertions, 30 deletions
diff --git a/lib/Support/LockFileManager.cpp b/lib/Support/LockFileManager.cpp
index b45fcbca2e..ba1047b88a 100644
--- a/lib/Support/LockFileManager.cpp
+++ b/lib/Support/LockFileManager.cpp
@@ -67,22 +67,6 @@ bool LockFileManager::processStillExecuting(StringRef Hostname, int PID) {
return true;
}
-#if LLVM_ON_UNIX
-static error_code unix_create_symbolic_link(const Twine &to,
- const Twine &from) {
- // Get arguments.
- SmallString<128> from_storage;
- SmallString<128> to_storage;
- StringRef f = from.toNullTerminatedStringRef(from_storage);
- StringRef t = to.toNullTerminatedStringRef(to_storage);
-
- if (::symlink(t.begin(), f.begin()) == -1)
- return error_code(errno, system_category());
-
- return error_code::success();
-}
-#endif
-
LockFileManager::LockFileManager(StringRef FileName)
{
this->FileName = FileName;
@@ -132,20 +116,9 @@ LockFileManager::LockFileManager(StringRef FileName)
}
while (1) {
-#if LLVM_ON_UNIX
- // Create a symbolic link from the lock file name. If this succeeds, we're
- // done. Note that we are using symbolic link because hard links are not
- // supported by all filesystems.
- error_code EC
- = unix_create_symbolic_link(UniqueLockFileName.str(),
- LockFileName.str());
-#else
- // We can't use symbolic links for windows.
- // Create a hard link from the lock file name. If this succeeds, we're done.
- error_code EC
- = sys::fs::create_hard_link(UniqueLockFileName.str(),
- LockFileName.str());
-#endif
+ // Create a link from the lock file name. If this succeeds, we're done.
+ error_code EC =
+ sys::fs::create_link(UniqueLockFileName.str(), LockFileName.str());
if (EC == errc::success)
return;