stream: uv__drain() always needs to stop POLLOUT (#3675)

Regression caused by 1a91b51976 mistake.

Refs: https://github.com/libuv/libuv/pull/3648
Fixes: https://github.com/libuv/libuv/pull/3648/3671
This commit is contained in:
Jameson Nash 2022-07-11 12:24:49 -04:00 committed by GitHub
parent c4d73c306b
commit 47e95602c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -659,18 +659,18 @@ static void uv__drain(uv_stream_t* stream) {
uv_shutdown_t* req;
int err;
if (!(stream->flags & UV_HANDLE_SHUTTING))
return;
assert(QUEUE_EMPTY(&stream->write_queue));
req = stream->shutdown_req;
assert(req);
if (!(stream->flags & UV_HANDLE_CLOSING)) {
uv__io_stop(stream->loop, &stream->io_watcher, POLLOUT);
uv__stream_osx_interrupt_select(stream);
}
if (!(stream->flags & UV_HANDLE_SHUTTING))
return;
req = stream->shutdown_req;
assert(req);
if ((stream->flags & UV_HANDLE_CLOSING) ||
!(stream->flags & UV_HANDLE_SHUT)) {
stream->shutdown_req = NULL;