forked from aniani/vim
patch 7.4.1350
Problem: When the test server fails to start Vim hangs. Solution: Check that there is actually something to read from the tty fd.
This commit is contained in:
parent
74a97b1ea0
commit
ec70bdd68a
@ -5345,11 +5345,12 @@ WaitForChar(long msec)
|
||||
#if defined(__BEOS__)
|
||||
int
|
||||
#else
|
||||
static int
|
||||
static int
|
||||
#endif
|
||||
RealWaitForChar(int fd, long msec, int *check_for_gpm UNUSED)
|
||||
{
|
||||
int ret;
|
||||
int result;
|
||||
#if defined(FEAT_XCLIPBOARD) || defined(USE_XSMP) || defined(FEAT_MZSCHEME)
|
||||
static int busy = FALSE;
|
||||
|
||||
@ -5466,6 +5467,9 @@ RealWaitForChar(int fd, long msec, int *check_for_gpm UNUSED)
|
||||
#endif
|
||||
|
||||
ret = poll(fds, nfd, towait);
|
||||
|
||||
result = ret > 0 && (fds[0].revents & POLLIN);
|
||||
|
||||
# ifdef FEAT_MZSCHEME
|
||||
if (ret == 0 && mzquantum_used)
|
||||
/* MzThreads scheduling is required and timeout occurred */
|
||||
@ -5613,6 +5617,10 @@ select_eintr:
|
||||
# endif
|
||||
|
||||
ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
|
||||
result = ret > 0 && FD_ISSET(fd, &rfds);
|
||||
if (result)
|
||||
--ret;
|
||||
|
||||
# ifdef EINTR
|
||||
if (ret == -1 && errno == EINTR)
|
||||
{
|
||||
@ -5733,7 +5741,7 @@ select_eintr:
|
||||
#endif
|
||||
}
|
||||
|
||||
return (ret > 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifndef NO_EXPANDPATH
|
||||
|
@ -747,6 +747,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1350,
|
||||
/**/
|
||||
1349,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user