summaryrefslogtreecommitdiff
path: root/src/proto
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-08-18 20:50:30 +0200
committerBram Moolenaar <Bram@vim.org>2017-08-18 20:50:30 +0200
commit97bd5e6527bf2b48acdd1550acba161e82a5bc99 (patch)
tree22b6437023669cf07961a5ac29490ea8d33e9340 /src/proto
parentcfce71710b6a2e1fb7f7f27d2a359e4b926f3af9 (diff)
downloadvim-git-97bd5e6527bf2b48acdd1550acba161e82a5bc99.tar.gz
patch 8.0.0957: a terminal job can deadlock when sending many keysv8.0.0957
Problem: When term_sendkeys() sends many keys it may get stuck in writing to the job. Solution: Make the write non-blocking, buffer keys to be sent.
Diffstat (limited to 'src/proto')
-rw-r--r--src/proto/channel.pro1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index 898911673..f9a701409 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -35,6 +35,7 @@ char_u *channel_read_block(channel_T *channel, ch_part_T part, int timeout);
void common_channel_read(typval_T *argvars, typval_T *rettv, int raw);
channel_T *channel_fd2channel(sock_T fd, ch_part_T *partp);
void channel_handle_events(void);
+void channel_set_nonblock(channel_T *channel, ch_part_T part);
int channel_send(channel_T *channel, ch_part_T part, char_u *buf, int len, char *fun);
void ch_expr_common(typval_T *argvars, typval_T *rettv, int eval);
void ch_raw_common(typval_T *argvars, typval_T *rettv, int eval);