in src/Windows/local_cache.cpp [222:247]
wil::unique_hfile OpenHandle(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) {
wil::unique_hfile file;
int i = 0;
bool retry;
do {
file.reset(CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes,
dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile));
retry = false;
if (!file && (GetLastError() == ERROR_SHARING_VIOLATION) && (i < MAX_RETRY)) {
retry = true;
}
if (retry)
{
Sleep(SLEEP_RETRY_MS);
}
i++;
} while (retry);
return std::move(file);
}