From 244163acad32fd7364e3b99b36cb62f6e50f7e0f Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Thu, 19 Oct 2023 00:12:34 -0700 Subject: [PATCH] [wpinet] uv::Stream::TryWrite(): Return 0 on EAGAIN (#5784) EAGAIN is a normal return value, but we want to just map it to 0 rather than handling it as an error. --- wpinet/src/main/native/cpp/uv/Stream.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wpinet/src/main/native/cpp/uv/Stream.cpp b/wpinet/src/main/native/cpp/uv/Stream.cpp index 83753cb2a4..e054003405 100644 --- a/wpinet/src/main/native/cpp/uv/Stream.cpp +++ b/wpinet/src/main/native/cpp/uv/Stream.cpp @@ -114,6 +114,9 @@ int Stream::TryWrite(std::span bufs) { return UV_ECANCELED; } int val = uv_try_write(GetRawStream(), bufs.data(), bufs.size()); + if (val == UV_EAGAIN) { + return 0; + } if (val < 0) { this->ReportError(val); return val; @@ -127,6 +130,9 @@ int Stream::TryWrite2(std::span bufs, Stream& send) { } int val = uv_try_write2(GetRawStream(), bufs.data(), bufs.size(), send.GetRawStream()); + if (val == UV_EAGAIN) { + return 0; + } if (val < 0) { this->ReportError(val); return val;