aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/wstream.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/os/wstream.c b/src/nvim/os/wstream.c
index a1f3612418..6a650ce775 100644
--- a/src/nvim/os/wstream.c
+++ b/src/nvim/os/wstream.c
@@ -230,7 +230,11 @@ static void write_cb(uv_write_t *req, int status)
if (data->wstream->freed && data->wstream->pending_reqs == 0) {
// Last pending write, free the wstream;
- free(data->wstream);
+ if (data->wstream->free_handle) {
+ uv_close((uv_handle_t *)data->wstream->stream, close_cb);
+ } else {
+ free(data->wstream);
+ }
}
kmp_free(WRequestPool, wrequest_pool, data);