From 40b552be4a2b81b87b9b87155aaa3c70d3ce62a8 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 17 Sep 2023 20:01:24 -0700 Subject: [PATCH] [wpinet] uv::Stream: Return error from TryWrite() (#5655) --- wpinet/src/main/native/cpp/uv/Stream.cpp | 8 ++++---- wpinet/src/main/native/include/wpinet/uv/Stream.h | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/wpinet/src/main/native/cpp/uv/Stream.cpp b/wpinet/src/main/native/cpp/uv/Stream.cpp index 2891aaeeb8..fdceb7b1f2 100644 --- a/wpinet/src/main/native/cpp/uv/Stream.cpp +++ b/wpinet/src/main/native/cpp/uv/Stream.cpp @@ -111,25 +111,25 @@ void Stream::Write(std::span bufs, int Stream::TryWrite(std::span bufs) { if (IsLoopClosing()) { - return 0; + return UV_ECANCELED; } int val = uv_try_write(GetRawStream(), bufs.data(), bufs.size()); if (val < 0) { this->ReportError(val); - return 0; + return val; } return val; } int Stream::TryWrite2(std::span bufs, Stream& send) { if (IsLoopClosing()) { - return 0; + return UV_ECANCELED; } int val = uv_try_write2(GetRawStream(), bufs.data(), bufs.size(), send.GetRawStream()); if (val < 0) { this->ReportError(val); - return 0; + return val; } return val; } diff --git a/wpinet/src/main/native/include/wpinet/uv/Stream.h b/wpinet/src/main/native/include/wpinet/uv/Stream.h index 9568455512..29e58118a6 100644 --- a/wpinet/src/main/native/include/wpinet/uv/Stream.h +++ b/wpinet/src/main/native/include/wpinet/uv/Stream.h @@ -194,8 +194,9 @@ class Stream : public Handle { * An error signal will be emitted in case of errors. * * @param bufs The buffers to be written to the stream. - * @return Number of bytes written. + * @return Number of bytes written, or negative (error code) on error */ + [[nodiscard]] int TryWrite(std::span bufs); /** @@ -206,8 +207,9 @@ class Stream : public Handle { * An error signal will be emitted in case of errors. * * @param bufs The buffers to be written to the stream. - * @return Number of bytes written. + * @return Number of bytes written, or negative (error code) on error */ + [[nodiscard]] int TryWrite(std::initializer_list bufs) { return TryWrite({bufs.begin(), bufs.end()}); } @@ -221,8 +223,9 @@ class Stream : public Handle { * * @param bufs The buffers to be written to the stream. * @param send send stream - * @return Number of bytes written. + * @return Number of bytes written, or negative (error code) on error */ + [[nodiscard]] int TryWrite2(std::span bufs, Stream& send); /** @@ -234,8 +237,9 @@ class Stream : public Handle { * * @param bufs The buffers to be written to the stream. * @param send send stream - * @return Number of bytes written. + * @return Number of bytes written, or negative (error code) on error */ + [[nodiscard]] int TryWrite2(std::initializer_list bufs, Stream& send) { return TryWrite2({bufs.begin(), bufs.end()}, send); }