mirror of
https://github.com/vim/vim.git
synced 2025-10-18 07:54:29 -04:00
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)
This commit is contained in:
@@ -1461,10 +1461,12 @@ WaitForChar(long msec)
|
|||||||
*/
|
*/
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
#ifdef MESSAGE_QUEUE
|
||||||
|
parse_queued_messages();
|
||||||
|
#endif
|
||||||
#ifdef FEAT_MZSCHEME
|
#ifdef FEAT_MZSCHEME
|
||||||
mzvim_check_threads();
|
mzvim_check_threads();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_CLIENTSERVER
|
#ifdef FEAT_CLIENTSERVER
|
||||||
serverProcessPendingMessages();
|
serverProcessPendingMessages();
|
||||||
#endif
|
#endif
|
||||||
@@ -1474,7 +1476,11 @@ WaitForChar(long msec)
|
|||||||
maxfd = channel_select_setup(-1, &rfds);
|
maxfd = channel_select_setup(-1, &rfds);
|
||||||
if (maxfd >= 0)
|
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)
|
if (ret > 0 && channel_select_check(ret, &rfds) > 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -742,6 +742,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1230,
|
||||||
/**/
|
/**/
|
||||||
1229,
|
1229,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user