(wait_reading_process_input): When trying to suck
input from one process, for accept-process-output, exit that loop if we get EAGAIN or EWOULDBLOCK.
This commit is contained in:
parent
78cc5c64e4
commit
e1b37c3468
1 changed files with 14 additions and 3 deletions
|
@ -2541,15 +2541,26 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
|
|||
XSETPROCESS (proc, wait_proc);
|
||||
|
||||
/* Read data from the process, until we exhaust it. */
|
||||
while (XINT (wait_proc->infd) >= 0
|
||||
&& (nread
|
||||
= read_process_output (proc, XINT (wait_proc->infd))))
|
||||
while (XINT (wait_proc->infd) >= 0)
|
||||
{
|
||||
nread = read_process_output (proc, XINT (wait_proc->infd));
|
||||
|
||||
if (nread == 0)
|
||||
break;
|
||||
|
||||
if (0 < nread)
|
||||
total_nread += nread;
|
||||
#ifdef EIO
|
||||
else if (nread == -1 && EIO == errno)
|
||||
break;
|
||||
#endif
|
||||
#ifdef EAGAIN
|
||||
else if (nread == -1 && EAGAIN == errno)
|
||||
break;
|
||||
#endif
|
||||
#ifdef EWOULDBLOCK
|
||||
else if (nread == -1 && EWOULDBLOCK == errno)
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
if (total_nread > 0 && do_display)
|
||||
|
|
Loading…
Add table
Reference in a new issue