diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-18 20:50:30 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-18 20:50:30 +0200 |
commit | 97bd5e6527bf2b48acdd1550acba161e82a5bc99 (patch) | |
tree | 22b6437023669cf07961a5ac29490ea8d33e9340 /src/proto | |
parent | cfce71710b6a2e1fb7f7f27d2a359e4b926f3af9 (diff) | |
download | vim-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.pro | 1 |
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); |