Commit 6e432f0c authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Cleanup related to bug #13546 with subprocesses on MS-Windows.

 src/w32.c (sys_pipe): When failing due to file descriptors above
 MAXDESC, set errno to EMFILE.
 (_sys_read_ahead): Update cp->status when failing to read serial
 communications input, so that the status doesn't stay at
 STATUS_READ_IN_PROGRESS.
parent a1d23eb5
2013-02-13 Eli Zaretskii <eliz@gnu.org>
* w32.c (sys_pipe): When failing due to file descriptors above
MAXDESC, set errno to EMFILE.
(_sys_read_ahead): Update cp->status when failing to read serial
communications input, so that the status doesn't stay at
STATUS_READ_IN_PROGRESS. (Bug#13546)
2013-02-13 Glenn Morris <rgm@gnu.org>
 
* keyboard.c (input-decode-map, key-translation-map): Doc fixes.
......
......@@ -6209,6 +6209,7 @@ sys_pipe (int * phandles)
{
_close (phandles[0]);
_close (phandles[1]);
errno = EMFILE;
rc = -1;
}
else
......@@ -6281,19 +6282,31 @@ _sys_read_ahead (int fd)
/* Configure timeouts for blocking read. */
if (!GetCommTimeouts (hnd, &ct))
return STATUS_READ_ERROR;
{
cp->status = STATUS_READ_ERROR;
return STATUS_READ_ERROR;
}
ct.ReadIntervalTimeout = 0;
ct.ReadTotalTimeoutMultiplier = 0;
ct.ReadTotalTimeoutConstant = 0;
if (!SetCommTimeouts (hnd, &ct))
return STATUS_READ_ERROR;
{
cp->status = STATUS_READ_ERROR;
return STATUS_READ_ERROR;
}
if (!ReadFile (hnd, &cp->chr, sizeof (char), (DWORD*) &rc, ovl))
{
if (GetLastError () != ERROR_IO_PENDING)
return STATUS_READ_ERROR;
{
cp->status = STATUS_READ_ERROR;
return STATUS_READ_ERROR;
}
if (!GetOverlappedResult (hnd, ovl, (DWORD*) &rc, TRUE))
return STATUS_READ_ERROR;
{
cp->status = STATUS_READ_ERROR;
return STATUS_READ_ERROR;
}
}
}
else if (fd_info[fd].flags & FILE_SOCKET)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment