From e2f9b612c3d8764e702e411ba4edc2c1774ee1ab Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Tue, 13 Jan 2015 03:07:01 +0100 Subject: [PATCH] win,stream: start uv_try_write implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR: https://github.com/libuv/libuv/pull/127 Reviewed-by: Saúl Ibarra Corretgé --- src/win/stream.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/win/stream.c b/src/win/stream.c index 057f72ec..7665fb24 100644 --- a/src/win/stream.c +++ b/src/win/stream.c @@ -184,8 +184,20 @@ int uv_write2(uv_write_t* req, int uv_try_write(uv_stream_t* stream, const uv_buf_t bufs[], unsigned int nbufs) { - /* NOTE: Won't work with overlapped writes */ - return UV_ENOSYS; + if (stream->flags & UV__HANDLE_CLOSING) + return UV_EBADF; + if (!(stream->flags & UV_HANDLE_WRITABLE)) + return UV_EPIPE; + + switch (stream->type) { + case UV_TCP: + case UV_TTY: + case UV_NAMED_PIPE: + return UV_EAGAIN; + default: + assert(0); + return UV_ENOSYS; + } }