From ca568aeec60dd6cc13b4dcf5cec0e0a07113547f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 1 Feb 2016 21:32:58 +0100 Subject: patch 7.4.1230 Problem: Win32: opening a channel may hang. Not checking for messages while waiting for characters. Solution: Add a zero timeout. Call parse_queued_messages(). (Yasuhiro Matsumoto) --- src/os_win32.c | 10 ++++++++-- src/version.c | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/os_win32.c b/src/os_win32.c index 9fa806e738..fb13671884 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -1461,10 +1461,12 @@ WaitForChar(long msec) */ for (;;) { +#ifdef MESSAGE_QUEUE + parse_queued_messages(); +#endif #ifdef FEAT_MZSCHEME mzvim_check_threads(); #endif - #ifdef FEAT_CLIENTSERVER serverProcessPendingMessages(); #endif @@ -1474,7 +1476,11 @@ WaitForChar(long msec) maxfd = channel_select_setup(-1, &rfds); if (maxfd >= 0) { - ret = select(maxfd + 1, &rfds, NULL, NULL, NULL); + struct timeval tv; + + tv.tv_sec = 0; + tv.tv_usec = 0; + ret = select(maxfd + 1, &rfds, NULL, NULL, &tv); if (ret > 0 && channel_select_check(ret, &rfds) > 0) return TRUE; } diff --git a/src/version.c b/src/version.c index 1c9cbf51b8..61d122c4d1 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1230, /**/ 1229, /**/ -- cgit v1.2.3