[ROSAUTOTEST] Cache the result of GetLastError().

This commit is contained in:
Colin Finck 2019-04-23 11:37:58 +02:00 committed by Timo Kreuzer
parent 7dd4d2256b
commit 064dffe6c3

View file

@ -169,7 +169,9 @@ CPipe::Read(PVOID Buffer, DWORD NumberOfBytesToRead, PDWORD NumberOfBytesRead, D
// The asynchronous read request could be satisfied immediately. // The asynchronous read request could be satisfied immediately.
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
else if (GetLastError() == ERROR_IO_PENDING)
DWORD dwLastError = GetLastError();
if (dwLastError == ERROR_IO_PENDING)
{ {
// The asynchronous read request could not be satisfied immediately, so wait for it with the given timeout. // The asynchronous read request could not be satisfied immediately, so wait for it with the given timeout.
DWORD dwWaitResult = WaitForSingleObject(m_ReadOverlapped.hEvent, TimeoutMilliseconds); DWORD dwWaitResult = WaitForSingleObject(m_ReadOverlapped.hEvent, TimeoutMilliseconds);
@ -181,7 +183,9 @@ CPipe::Read(PVOID Buffer, DWORD NumberOfBytesToRead, PDWORD NumberOfBytesRead, D
// We successfully read NumberOfBytesRead bytes. // We successfully read NumberOfBytesRead bytes.
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
else if (GetLastError() == ERROR_BROKEN_PIPE)
dwLastError = GetLastError();
if (dwLastError == ERROR_BROKEN_PIPE)
{ {
// The other end of the pipe has been closed. // The other end of the pipe has been closed.
return ERROR_BROKEN_PIPE; return ERROR_BROKEN_PIPE;
@ -201,7 +205,7 @@ CPipe::Read(PVOID Buffer, DWORD NumberOfBytesToRead, PDWORD NumberOfBytesRead, D
else else
{ {
// This may be ERROR_BROKEN_PIPE or an unexpected error. // This may be ERROR_BROKEN_PIPE or an unexpected error.
return GetLastError(); return dwLastError;
} }
} }