From 0db3274f8af73b9d8a7757f7fdc699e7f7f92349 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 5 Dec 2011 16:56:28 +0100 Subject: [PATCH] unix: check UV_CLOSING flag in uv__write() uv__write() runs after the read callbacks have fired. Said callbacks may have closed the handle, handle that graciously. --- src/unix/stream.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/unix/stream.c b/src/unix/stream.c index 25737814..035e6383 100644 --- a/src/unix/stream.c +++ b/src/unix/stream.c @@ -341,6 +341,13 @@ static void uv__write(uv_stream_t* stream) { int iovcnt; ssize_t n; + if (stream->flags & UV_CLOSING) { + /* Handle was closed this tick. We've received a stale + * 'is writable' callback from the event loop, ignore. + */ + return; + } + start: assert(stream->fd >= 0);