[clang] [llvm] [Support] Return `LockFileManager` errors right away (PR #130627)
Ben Langmuir via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 10 10:05:33 PDT 2025
================
@@ -248,39 +236,14 @@ LockFileManager::LockFileManager(StringRef FileName)
// There is a lock file that nobody owns; try to clean it up and get
// ownership.
- if ((EC = sys::fs::remove(LockFileName))) {
- std::string S("failed to remove lockfile ");
- S.append(std::string(UniqueLockFileName));
- setError(EC, S);
- return;
- }
- }
-}
-
-LockFileManager::LockFileState LockFileManager::getState() const {
- if (Owner)
- return LFS_Shared;
-
- if (ErrorCode)
- return LFS_Error;
-
- return LFS_Owned;
-}
-
-std::string LockFileManager::getErrorMessage() const {
- if (ErrorCode) {
- std::string Str(ErrorDiagMsg);
- std::string ErrCodeMsg = ErrorCode.message();
- raw_string_ostream OSS(Str);
- if (!ErrCodeMsg.empty())
- OSS << ": " << ErrCodeMsg;
- return Str;
+ if ((EC = sys::fs::remove(LockFileName)))
+ return createStringError(EC, "failed to remove lockfile " +
+ UniqueLockFileName);
}
- return "";
}
LockFileManager::~LockFileManager() {
- if (getState() != LFS_Owned)
+ if (Owner)
----------------
benlangmuir wrote:
I don't think we have enough information to know whether we own the lock or not here anymore. All `if (Owner)` tells us is if we know that someone else owns it. We need to additionally consider tryLock was never called or it failed part way.
https://github.com/llvm/llvm-project/pull/130627
More information about the cfe-commits
mailing list