From eed7675f78ba58fb31a25693562ec477f54e7708 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Fri, 15 Jul 2022 11:50:06 -0400 Subject: [PATCH] tcp: re-enable half-duplex operation support Refs: #42005 --- base/stream.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/base/stream.jl b/base/stream.jl index 948c12ad604b4..462f184483039 100644 --- a/base/stream.jl +++ b/base/stream.jl @@ -665,8 +665,11 @@ function uv_readcb(handle::Ptr{Cvoid}, nread::Cssize_t, buf::Ptr{Cvoid}) elseif nread == UV_EOF # libuv called uv_stop_reading already if stream.status != StatusClosing stream.status = StatusEOF - if stream isa TTY # TODO: || ccall(:uv_is_writable, Cint, (Ptr{Cvoid},), stream.handle) != 0 - # stream can still be used either by reseteof # TODO: or write + if stream isa TTY + # stream can still be used by reseteof (or possibly write) + notify(stream.cond) + elseif !(stream isa PipeEndpoint) && ccall(:uv_is_writable, Cint, (Ptr{Cvoid},), stream.handle) != 0 + # stream can still be used by write notify(stream.cond) else # underlying stream is no longer useful: begin finalization