summaryrefslogtreecommitdiff
path: root/deps/uv/src/win/pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'deps/uv/src/win/pipe.c')
-rw-r--r--deps/uv/src/win/pipe.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/deps/uv/src/win/pipe.c b/deps/uv/src/win/pipe.c
index 0ecfbf1f0e..83ee4f99ca 100644
--- a/deps/uv/src/win/pipe.c
+++ b/deps/uv/src/win/pipe.c
@@ -735,6 +735,13 @@ void uv__pipe_unpause_read(uv_pipe_t* handle) {
void uv__pipe_stop_read(uv_pipe_t* handle) {
+ if (pCancelIoEx &&
+ !(handle->flags & UV_HANDLE_NON_OVERLAPPED_PIPE) &&
+ !(handle->flags & UV_HANDLE_EMULATE_IOCP) &&
+ handle->flags & UV_HANDLE_READING &&
+ handle->read_req.type == UV_READ) {
+ pCancelIoEx(handle->handle, &handle->read_req.u.io.overlapped);
+ }
handle->flags &= ~UV_HANDLE_READING;
uv__pipe_pause_read((uv_pipe_t*)handle);
uv__pipe_unpause_read((uv_pipe_t*)handle);