]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid read error messages from 'inotify'
authorRobert Pluim <rpluim@gmail.com>
Sat, 5 Sep 2015 08:37:29 +0000 (11:37 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 5 Sep 2015 08:37:29 +0000 (11:37 +0300)
* 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)

src/process.c

index 1ab837809148a1d5144f14635f08fcbaf9948553..f4613be28edf8c6edcad5b88007433933145d186 100644 (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
        }