summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2019-08-13 14:06:44 (GMT)
committerKitware Robot <kwrobot@kitware.com>2019-08-13 14:07:09 (GMT)
commitfb56ac9209f368712284a3705c0d52ba6f55b6ed (patch)
treef66bf0fc2c0c1ffe06a6f05cba174d3630182c70 /Source/cmSystemTools.cxx
parent39d2ce4a71c7c337060bdbe68e3ac20178789300 (diff)
parent6bc77966ad7cce3f12d35e64bcda4be56094b2ca (diff)
downloadCMake-fb56ac9209f368712284a3705c0d52ba6f55b6ed.zip
CMake-fb56ac9209f368712284a3705c0d52ba6f55b6ed.tar.gz
CMake-fb56ac9209f368712284a3705c0d52ba6f55b6ed.tar.bz2
Merge topic 'retry-directory-delete'
6bc77966ad Retry removing directories on Windows 5729580376 Use registry setting for removal retry count and delay Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3667
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 785e221..ee60f16 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -2838,14 +2838,20 @@ bool cmSystemTools::CheckRPath(std::string const& file,
bool cmSystemTools::RepeatedRemoveDirectory(const std::string& dir)
{
+#ifdef _WIN32
// Windows sometimes locks files temporarily so try a few times.
- for (int i = 0; i < 10; ++i) {
+ WindowsFileRetry retry = cmSystemTools::GetWindowsFileRetry();
+
+ for (unsigned int i = 0; i < retry.Count; ++i) {
if (cmSystemTools::RemoveADirectory(dir)) {
return true;
}
- cmSystemTools::Delay(100);
+ cmSystemTools::Delay(retry.Delay);
}
return false;
+#else
+ return cmSystemTools::RemoveADirectory(dir);
+#endif
}
bool cmSystemTools::StringToLong(const char* str, long* value)