Merge topic 'fix-atomic-rename-Windows-sharing-violation'
24bd7ae1 cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
This commit is contained in:
commit
775458dede
@ -886,8 +886,10 @@ bool cmSystemTools::RenameFile(const char* oldname, const char* newname)
|
|||||||
cmsys::Encoding::ToWide(newname).c_str(),
|
cmsys::Encoding::ToWide(newname).c_str(),
|
||||||
MOVEFILE_REPLACE_EXISTING) && --retry.Count)
|
MOVEFILE_REPLACE_EXISTING) && --retry.Count)
|
||||||
{
|
{
|
||||||
// Try again only if failure was due to access permissions.
|
DWORD last_error = GetLastError();
|
||||||
if(GetLastError() != ERROR_ACCESS_DENIED)
|
// Try again only if failure was due to access/sharing permissions.
|
||||||
|
if(last_error != ERROR_ACCESS_DENIED &&
|
||||||
|
last_error != ERROR_SHARING_VIOLATION)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user