]> git.eshelyaron.com Git - emacs.git/commitdiff
(wait_reading_process_output): Keep the descriptor
authorNick Roberts <nickrob@snap.net.nz>
Sun, 30 Aug 2009 04:54:34 +0000 (04:54 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Sun, 30 Aug 2009 04:54:34 +0000 (04:54 +0000)
when pty is used by a non-child process, e.g., in I/O buffer of
GDB this allows inferior to be restarted.

src/process.c

index 77ca2551e46b6259b299be603ac0775c55943424..ed53517021456c1a7fd03c20af25dd1229a3f8e0 100644 (file)
@@ -5150,11 +5150,16 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
                 It can't hurt.  */
              else if (nread == -1 && errno == EIO)
                {
-                 /* Clear the descriptor now, so we only raise the signal once.  */
-                 FD_CLR (channel, &input_wait_mask);
-                 FD_CLR (channel, &non_keyboard_wait_mask);
+                 /* Clear the descriptor now, so we only raise the
+                    signal once.  Don't do this is `process' is only
+                    a pty.  */
+                 if (XPROCESS (proc)->pid != -2)
+                   {
+                     FD_CLR (channel, &input_wait_mask);
+                     FD_CLR (channel, &non_keyboard_wait_mask);
 
-                 kill (getpid (), SIGCHLD);
+                     kill (getpid (), SIGCHLD);
+                   }
                }
 #endif /* HAVE_PTYS */
              /* If we can detect process termination, don't consider the process