Avoid read error messages from 'inotify'

* src/process.c (wait_reading_process_output): Add a
'tls_available' set and manipulate it instead of 'Available' when
checking TLS inputs.  Assign the value to 'Available' only if we
find any TLS data waiting to be read.  This avoids error messages
from 'inotify' that tries to read data it shouldn't.  (Bug#21337)
This commit is contained in:
Robert Pluim 2015-09-05 11:37:29 +03:00 committed by Eli Zaretskii
parent ec14f08753
commit ac9da24198

View file

@ -4859,6 +4859,10 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
data is available in the buffers manually. */
if (nfds == 0)
{
fd_set tls_available;
int set = 0;
FD_ZERO (&tls_available);
if (! wait_proc)
{
/* We're not waiting on a specific process, so loop
@ -4879,7 +4883,8 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
{
nfds++;
eassert (p->infd == channel);
FD_SET (p->infd, &Available);
FD_SET (p->infd, &tls_available);
set++;
}
}
}
@ -4896,9 +4901,12 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
nfds = 1;
eassert (0 <= wait_proc->infd);
/* Set to Available. */
FD_SET (wait_proc->infd, &Available);
FD_SET (wait_proc->infd, &tls_available);
set++;
}
}
if (set)
Available = tls_available;
}
#endif
}