From 5e761a5f812296aad8b44236f3363a9685c9c77e Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Sat, 3 Oct 2015 16:19:11 -0400 Subject: [PATCH] stream: support empty uv_try_write on unix PR-URL: https://github.com/libuv/libuv/pull/558 Reviewed-By: Ben Noordhuis --- src/unix/stream.c | 2 +- test/test-tcp-try-write.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/unix/stream.c b/src/unix/stream.c index 183b68cf..7ebd9fde 100644 --- a/src/unix/stream.c +++ b/src/unix/stream.c @@ -1471,7 +1471,7 @@ int uv_try_write(uv_stream_t* stream, uv__stream_osx_interrupt_select(stream); } - if (written == 0) + if (written == 0 && req_size != 0) return -EAGAIN; else return written; diff --git a/test/test-tcp-try-write.c b/test/test-tcp-try-write.c index 8a60136b..97a1d6e3 100644 --- a/test/test-tcp-try-write.c +++ b/test/test-tcp-try-write.c @@ -58,6 +58,11 @@ static void connect_cb(uv_connect_t* req, int status) { break; } } while (1); + + do { + buf = uv_buf_init("", 0); + r = uv_try_write((uv_stream_t*) &client, &buf, 1); + } while (r != 0); uv_close((uv_handle_t*) &client, close_cb); }