[*] nt: fix new blocking over async paths (eos handling)
This commit is contained in:
parent
a79caa707f
commit
c05a859638
@ -120,7 +120,7 @@ namespace Aurora::IO::FS
|
||||
AuUInt64 uOffset {};
|
||||
while (uLength)
|
||||
{
|
||||
DWORD read;
|
||||
DWORD read {};
|
||||
|
||||
auto blockSize = AuMin(AuUInt(kFileCopyBlock), uLength);
|
||||
|
||||
@ -146,12 +146,13 @@ namespace Aurora::IO::FS
|
||||
|
||||
if (!::GetOverlappedResult(hHandle, &overlapped, &read, true))
|
||||
{
|
||||
AuWin32CloseHandle(hEventHandle);
|
||||
parameters.outVariable = uOffset;
|
||||
return false;
|
||||
if (::GetLastError() != ERROR_HANDLE_EOF)
|
||||
{
|
||||
AuWin32CloseHandle(hEventHandle);
|
||||
parameters.outVariable = uOffset;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
::CloseHandle(hEventHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -205,7 +206,7 @@ namespace Aurora::IO::FS
|
||||
AuUInt64 uOffset {};
|
||||
while (uLength)
|
||||
{
|
||||
DWORD written;
|
||||
DWORD written {};
|
||||
|
||||
auto uBlockSize = AuMin(AuUInt(kFileCopyBlock), uLength);
|
||||
|
||||
@ -235,8 +236,6 @@ namespace Aurora::IO::FS
|
||||
parameters.outVariable = uOffset;
|
||||
return false;
|
||||
}
|
||||
|
||||
::CloseHandle(hEventHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user