From: Vedant Kumar Date: Fri, 10 Jan 2020 23:24:30 +0000 (-0800) Subject: [LockFileManager] Make default waitForUnlock timeout a parameter, NFC X-Git-Tag: llvmorg-11-init~382 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e05e219926f90ccab927b7b1af6d14aa6dd52571;p=platform%2Fupstream%2Fllvm.git [LockFileManager] Make default waitForUnlock timeout a parameter, NFC Patch by Xi Ge! --- diff --git a/llvm/include/llvm/Support/LockFileManager.h b/llvm/include/llvm/Support/LockFileManager.h index 57e4fbd..2efeca3 100644 --- a/llvm/include/llvm/Support/LockFileManager.h +++ b/llvm/include/llvm/Support/LockFileManager.h @@ -77,7 +77,9 @@ public: operator LockFileState() const { return getState(); } /// For a shared lock, wait until the owner releases the lock. - WaitForUnlockResult waitForUnlock(); + /// Total timeout for the file to appear is ~1.5 minutes. + /// \param MaxSeconds the maximum wait time per iteration in seconds. + WaitForUnlockResult waitForUnlock(const unsigned MaxSeconds = 40); /// Remove the lock file. This may delete a different lock file than /// the one previously read if there is a race. diff --git a/llvm/lib/Support/LockFileManager.cpp b/llvm/lib/Support/LockFileManager.cpp index 1018119..5c6508c 100644 --- a/llvm/lib/Support/LockFileManager.cpp +++ b/llvm/lib/Support/LockFileManager.cpp @@ -290,7 +290,8 @@ LockFileManager::~LockFileManager() { sys::DontRemoveFileOnSignal(UniqueLockFileName); } -LockFileManager::WaitForUnlockResult LockFileManager::waitForUnlock() { +LockFileManager::WaitForUnlockResult +LockFileManager::waitForUnlock(const unsigned MaxSeconds) { if (getState() != LFS_Shared) return Res_Success; @@ -301,9 +302,6 @@ LockFileManager::WaitForUnlockResult LockFileManager::waitForUnlock() { Interval.tv_sec = 0; Interval.tv_nsec = 1000000; #endif - // Don't wait more than 40s per iteration. Total timeout for the file - // to appear is ~1.5 minutes. - const unsigned MaxSeconds = 40; do { // Sleep for the designated interval, to allow the owning process time to // finish up and remove the lock file.