diff src/os_unix.c @ 10418:56cb9538386c v8.0.0103

commit https://github.com/vim/vim/commit/8a8199e4a1814b10630a770165502abb1121cd1b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 26 15:13:33 2016 +0100 patch 8.0.0103 Problem: May not process channel readahead. (skywind) Solution: If there is readahead don't block on input.
author Christian Brabandt <cb@256bit.org>
date Sat, 26 Nov 2016 15:15:03 +0100
parents 42911b233245
children 2198b53b9ffe
line wrap: on
line diff
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -462,6 +462,10 @@ mch_inchar(
 	/* Checking if a job ended requires polling.  Do this every 100 msec. */
 	if (has_pending_job() && (wait_time < 0 || wait_time > 100L))
 	    wait_time = 100L;
+	/* If there is readahead then parse_queued_messages() timed out and we
+	 * should call it again soon. */
+	if ((wait_time < 0 || wait_time > 100L) && channel_any_readahead())
+	    wait_time = 10L;
 #endif
 
 	/*