From 18c9df49ce324ef9ec7f3d8d7d82aeb4bab9fa24 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Mon, 25 Jul 2022 14:26:34 -0400 Subject: [PATCH] tcp: re-enable half-duplex operation support (#46088) Refs: #42005 --- base/stream.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/base/stream.jl b/base/stream.jl index 948c12ad604b44..462f184483039a 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