patch 7.4.1669
Problem:    When writing buffer lines to a pipe Vim may block.
Solution:   Avoid blocking, write more lines later.
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index e334908..b796d82 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -13,7 +13,7 @@
 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_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);