aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Hillegeer <nicolas@hillegeer.com>2014-07-22 12:43:59 +0200
committerThiago de Arruda <tpadilha84@gmail.com>2014-07-27 14:00:44 -0300
commit115b165bfa6bc1f85e6c6a8789ef49920b409822 (patch)
tree5139bde6b66ffe4b289d89bfd45333fb800a4462
parent8bd1fe9523e34cbce6f506a4058c79f6e2cb8cdd (diff)
downloadrneovim-115b165bfa6bc1f85e6c6a8789ef49920b409822.tar.gz
rneovim-115b165bfa6bc1f85e6c6a8789ef49920b409822.tar.bz2
rneovim-115b165bfa6bc1f85e6c6a8789ef49920b409822.zip
rstream: remove 'reading' struct member
Not necessary, as discussed in #980. From the libuv mailing list: https://groups.google.com/forum/#!topic/libuv/OD38PeGeVgQ E.g. this could happen (red: on Windows): > > alloc_cb(handle1); > > alloc_cb(handle2); > > read_cb(handle1); > > read_cb(handle2); But this couldn't: > > alloc_cb(handle1); > > alloc_cb(handle1); > > read_cb(handle1); > > read_cb(handle1); Because each stream has a 1-to-1 correspondance with a libuv handle. The code removed was never executed. Closes #980.
-rw-r--r--src/nvim/os/rstream.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/src/nvim/os/rstream.c b/src/nvim/os/rstream.c
index d7ab5b8a64..b3a5196351 100644
--- a/src/nvim/os/rstream.c
+++ b/src/nvim/os/rstream.c
@@ -26,7 +26,7 @@ struct rstream {
uv_file fd;
rstream_cb cb;
size_t buffer_size, rpos, wpos, fpos;
- bool reading, free_handle;
+ bool free_handle;
EventSource source_override;
};
@@ -150,7 +150,6 @@ void rstream_start(RStream *rstream)
if (rstream->file_type == UV_FILE) {
uv_idle_start(rstream->fread_idle, fread_idle_cb);
} else {
- rstream->reading = false;
uv_read_start(rstream->stream, alloc_cb, read_cb);
}
}
@@ -236,16 +235,8 @@ static void alloc_cb(uv_handle_t *handle, size_t suggested, uv_buf_t *buf)
{
RStream *rstream = handle_get_rstream(handle);
- if (rstream->reading) {
- buf->len = 0;
- return;
- }
-
buf->len = rstream->buffer_size - rstream->wpos;
buf->base = rstream->buffer + rstream->wpos;
-
- // Avoid `alloc_cb`, `alloc_cb` sequences on windows
- rstream->reading = true;
}
// Callback invoked by libuv after it copies the data into the buffer provided
@@ -287,7 +278,6 @@ static void read_cb(uv_stream_t *stream, ssize_t cnt, const uv_buf_t *buf)
rstream_event_source(rstream));
}
- rstream->reading = false;
emit_read_event(rstream, false);
}