windows: avoid assertion failure when pipe server is closed
When a pipe server is closed, all pending accept requests and their associated HANDLEs are closed to force windows to cancel the ConnectNamedPipe IRP. The returned request has the `pipeHandle` field set to INVALID_HANDLE_VALUE, which trips an assert in uv_pipe_process_accept_req. This patch fixes that.
This commit is contained in:
parent
9d60214b3a
commit
7b16a3f508
@ -1480,6 +1480,13 @@ void uv_process_pipe_accept_req(uv_loop_t* loop, uv_pipe_t* handle,
|
||||
|
||||
assert(handle->type == UV_NAMED_PIPE);
|
||||
|
||||
if (handle->flags & UV__HANDLE_CLOSING) {
|
||||
/* The req->pipeHandle should be freed already in uv_pipe_cleanup(). */
|
||||
assert(req->pipeHandle == INVALID_HANDLE_VALUE);
|
||||
DECREASE_PENDING_REQ_COUNT(handle);
|
||||
return;
|
||||
}
|
||||
|
||||
if (REQ_SUCCESS(req)) {
|
||||
assert(req->pipeHandle != INVALID_HANDLE_VALUE);
|
||||
req->next_pending = handle->pending_accepts;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user