aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/iocp_windows.cc
diff options
context:
space:
mode:
authorGravatar Alex Polcyn <apolcyn@google.com>2018-06-16 04:08:55 +0000
committerGravatar Alexander Polcyn <apolcyn@google.com>2018-08-08 15:21:26 -0700
commit5cd8b1eb811e79ad68bf91a0296507c153053ecf (patch)
tree9e15547ae3f62501a9b3586541a80f92eb65e33e /src/core/lib/iomgr/iocp_windows.cc
parente916e79cb88b007559e079a8cac2250105a76954 (diff)
Enable c-ares queries on Windows
Diffstat (limited to 'src/core/lib/iomgr/iocp_windows.cc')
-rw-r--r--src/core/lib/iomgr/iocp_windows.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/core/lib/iomgr/iocp_windows.cc b/src/core/lib/iomgr/iocp_windows.cc
index ce77231036..ad325fe215 100644
--- a/src/core/lib/iomgr/iocp_windows.cc
+++ b/src/core/lib/iomgr/iocp_windows.cc
@@ -89,10 +89,15 @@ grpc_iocp_work_status grpc_iocp_work(grpc_millis deadline) {
} else {
abort();
}
- success = WSAGetOverlappedResult(socket->socket, &info->overlapped, &bytes,
- FALSE, &flags);
- info->bytes_transfered = bytes;
- info->wsa_error = success ? 0 : WSAGetLastError();
+ if (socket->shutdown_called) {
+ info->bytes_transfered = 0;
+ info->wsa_error = WSA_OPERATION_ABORTED;
+ } else {
+ success = WSAGetOverlappedResult(socket->socket, &info->overlapped, &bytes,
+ FALSE, &flags);
+ info->bytes_transfered = bytes;
+ info->wsa_error = success ? 0 : WSAGetLastError();
+ }
GPR_ASSERT(overlapped == &info->overlapped);
grpc_socket_become_ready(socket, info);
return GRPC_IOCP_WORK_WORK;