Mercurial > vim
diff src/proto/channel.pro @ 8761:f8707ec9efe4 v7.4.1669
commit https://github.com/vim/vim/commit/8b877ac38e96424a08a8b8eb713ef4b3cf0064be
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Mar 28 19:16:20 2016 +0200
patch 7.4.1669
Problem: When writing buffer lines to a pipe Vim may block.
Solution: Avoid blocking, write more lines later.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 28 Mar 2016 19:30:05 +0200 |
parents | 06848fe9c816 |
children | 03250bc0c63a |
line wrap: on
line diff
--- a/src/proto/channel.pro +++ b/src/proto/channel.pro @@ -13,7 +13,7 @@ void channel_set_pipes(channel_T *channe void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options); void channel_set_options(channel_T *channel, jobopt_T *opt); void channel_set_req_callback(channel_T *channel, int part, char_u *callback, partial_T *partial, int id); -void channel_write_in(channel_T *channel); +void channel_write_any_lines(void); void channel_write_new_lines(buf_T *buf); char_u *channel_get(channel_T *channel, int part); int channel_collapse(channel_T *channel, int part); @@ -37,8 +37,8 @@ void ch_expr_common(typval_T *argvars, t void ch_raw_common(typval_T *argvars, typval_T *rettv, int eval); int channel_poll_setup(int nfd_in, void *fds_in); int channel_poll_check(int ret_in, void *fds_in); -int channel_select_setup(int maxfd_in, void *rfds_in); -int channel_select_check(int ret_in, void *rfds_in); +int channel_select_setup(int maxfd_in, void *rfds_in, void *wfds_in); +int channel_select_check(int ret_in, void *rfds_in, void *wfds_in); int channel_parse_messages(void); int set_ref_in_channel(int copyID); int channel_part_send(channel_T *channel);