[llvm-commits] [llvm] r156380 - /llvm/trunk/lib/Support/Windows/PathV2.inc
Bill Wendling
isanbard at gmail.com
Sun May 13 02:43:33 PDT 2012
Hi Nakamura,
I'm sorry, but it's too late to apply fixes to the 3.1 release.
-bw
On May 12, 2012, at 5:57 PM, NAKAMURA Takumi wrote:
> Anton and Bill,
>
> I propose if r156380 (and r156381 in Lit) could be merged into release_31.
>
> r156380 can avoid sprious false alarms in Clang tests with Lit.
> Then, r156381 could be applied. It rewinds Lit win32 tweaks to release_30.
>
> They affect only Win32 hosts and *resolve regressions since release_30.*
> I am sorry, I had to confirm if builds would be fine with them, two patches.
> It was the reason why I would not propose them in earlier stage.
>
> FYI, my builders are applying them locally (and has been good).
>
> Please consider to merge two of them, thank you.
>
> ...Takumi
>
> 2012/5/8 NAKAMURA Takumi <geek4civic at gmail.com>:
>> Author: chapuni
>> Date: Tue May 8 09:31:46 2012
>> New Revision: 156380
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=156380&view=rev
>> Log:
>> Windows/PathV2.inc: Retry rename() for (maximum) 2 seconds.
>>
>> Files might be opend by system scanners (eg. file indexer, virus scanner, &c).
>>
>> Modified:
>> llvm/trunk/lib/Support/Windows/PathV2.inc
>>
>> Modified: llvm/trunk/lib/Support/Windows/PathV2.inc
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/PathV2.inc?rev=156380&r1=156379&r2=156380&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Support/Windows/PathV2.inc (original)
>> +++ llvm/trunk/lib/Support/Windows/PathV2.inc Tue May 8 09:31:46 2012
>> @@ -301,11 +301,21 @@
>> if (error_code ec = UTF8ToUTF16(f, wide_from)) return ec;
>> if (error_code ec = UTF8ToUTF16(t, wide_to)) return ec;
>>
>> - if (!::MoveFileExW(wide_from.begin(), wide_to.begin(),
>> - MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING))
>> - return windows_error(::GetLastError());
>> + error_code ec = error_code::success();
>> + for (int i = 0; i < 2000; i++) {
>> + if (::MoveFileExW(wide_from.begin(), wide_to.begin(),
>> + MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING))
>> + return error_code::success();
>> + ec = windows_error(::GetLastError());
>> + if (ec != windows_error::access_denied)
>> + break;
>> + // Retry MoveFile() at ACCESS_DENIED.
>> + // System scanners (eg. indexer) might open the source file when
>> + // It is written and closed.
>> + ::Sleep(1);
>> + }
>>
>> - return error_code::success();
>> + return ec;
>> }
>>
>> error_code resize_file(const Twine &path, uint64_t size) {
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list