Merge pull request #386 from arvidn/win-file-error-handling

fix missing error handling in windows preadv/pwritev emulation
This commit is contained in:
Arvid Norberg 2016-01-13 21:50:49 -05:00
commit cdc3e720d6
1 changed files with 20 additions and 4 deletions

View File

@ -194,11 +194,19 @@ namespace
}
}
WaitForMultipleObjects(num_bufs, h, TRUE, INFINITE);
if (WaitForMultipleObjects(num_bufs, h, TRUE, INFINITE) == WAIT_FAILED)
{
ret = -1;
goto done;
}
for (int i = 0; i < num_bufs; ++i)
{
WaitForSingleObject(ol[i].hEvent, INFINITE);
if (WaitForSingleObject(ol[i].hEvent, INFINITE) == WAIT_FAILED)
{
ret = -1;
break;
}
DWORD num_read;
if (GetOverlappedResult(fd, &ol[i], &num_read, FALSE) == FALSE)
{
@ -256,11 +264,19 @@ done:
}
}
WaitForMultipleObjects(num_bufs, h, TRUE, INFINITE);
if (WaitForMultipleObjects(num_bufs, h, TRUE, INFINITE) == WAIT_FAILED)
{
ret = -1;
goto done;
}
for (int i = 0; i < num_bufs; ++i)
{
WaitForSingleObject(ol[i].hEvent, INFINITE);
if (WaitForSingleObject(ol[i].hEvent, INFINITE) == WAIT_FAILED)
{
ret = -1;
break;
}
DWORD num_written;
if (GetOverlappedResult(fd, &ol[i], &num_written, FALSE) == FALSE)
{