diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2019-08-13 14:06:44 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-08-13 14:07:09 (GMT) |
commit | fb56ac9209f368712284a3705c0d52ba6f55b6ed (patch) | |
tree | f66bf0fc2c0c1ffe06a6f05cba174d3630182c70 /Source/cmSystemTools.cxx | |
parent | 39d2ce4a71c7c337060bdbe68e3ac20178789300 (diff) | |
parent | 6bc77966ad7cce3f12d35e64bcda4be56094b2ca (diff) | |
download | CMake-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.cxx | 10 |
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) |