0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.4595: X11: using --remote-wait may keep the CPU busy

Problem:    X11: using --remote-wait may keep the CPU busy.
Solution:   Set the timeout for select() on every call. (Jacopo Secchiero,
            closes #9973)
This commit is contained in:
jsecchiero
2022-03-20 11:07:17 +00:00
committed by Bram Moolenaar
parent 47c532e2bc
commit 6f95363677
2 changed files with 17 additions and 12 deletions

View File

@@ -556,19 +556,16 @@ ServerWait(
#define UI_MSEC_DELAY 53
#define SEND_MSEC_POLL 500
#ifndef HAVE_SELECT
#ifdef HAVE_SELECT
fd_set fds;
FD_ZERO(&fds);
FD_SET(ConnectionNumber(dpy), &fds);
#else
struct pollfd fds;
fds.fd = ConnectionNumber(dpy);
fds.events = POLLIN;
#else
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);
#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
}

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4595,
/**/
4594,
/**/