From a27478e54f5fa99ed17ad6ef149046f9d391f293 Mon Sep 17 00:00:00 2001 From: Ben Dunbobbin Date: Wed, 1 Jul 2020 17:49:30 +0100 Subject: [PATCH] [Support][Windows] Prevent 2s delay when renaming a file that does not exist Differential Revision: https://reviews.llvm.org/D82542 --- llvm/lib/Support/Windows/Path.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index ec62e65..96677e2 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -555,6 +555,11 @@ std::error_code rename(const Twine &From, const Twine &To) { NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (FromHandle) break; + + // We don't want to loop if the file doesn't exist. + auto EC = mapWindowsError(GetLastError()); + if (EC == errc::no_such_file_or_directory) + return EC; } if (!FromHandle) return mapWindowsError(GetLastError()); -- 2.7.4