diff options
-rw-r--r-- | src/if_xcmdsrv.c | 27 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 17 insertions, 12 deletions
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c index 81a4d9de30..20427c7484 100644 --- a/src/if_xcmdsrv.c +++ b/src/if_xcmdsrv.c @@ -556,19 +556,16 @@ ServerWait( #define UI_MSEC_DELAY 53 #define SEND_MSEC_POLL 500 -#ifndef HAVE_SELECT - struct pollfd fds; - - fds.fd = ConnectionNumber(dpy); - fds.events = POLLIN; -#else +#ifdef HAVE_SELECT fd_set fds; - struct timeval tv; - tv.tv_sec = 0; - tv.tv_usec = SEND_MSEC_POLL * 1000; FD_ZERO(&fds); FD_SET(ConnectionNumber(dpy), &fds); +#else + struct pollfd fds; + + fds.fd = ConnectionNumber(dpy); + fds.events = POLLIN; #endif time(&start); @@ -593,11 +590,17 @@ ServerWait( // Just look out for the answer without calling back into Vim if (localLoop) { -#ifndef HAVE_SELECT - if (poll(&fds, 1, SEND_MSEC_POLL) < 0) +#ifdef HAVE_SELECT + struct timeval tv; + + // Set the time every call, select() may change it to the remaining + // time. + tv.tv_sec = 0; + tv.tv_usec = SEND_MSEC_POLL * 1000; + if (select(FD_SETSIZE, &fds, NULL, NULL, &tv) < 0) break; #else - if (select(FD_SETSIZE, &fds, NULL, NULL, &tv) < 0) + if (poll(&fds, 1, SEND_MSEC_POLL) < 0) break; #endif } diff --git a/src/version.c b/src/version.c index 1cb9ceba4c..f71228b24d 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4595, +/**/ 4594, /**/ 4593, |