On Windows, make the pipe() call return Unix file descriptors instead

of Windows file handles.  Now it is at least compatible with itself on
Unix!
This commit is contained in:
Guido van Rossum 1998-06-12 15:05:15 +00:00
parent e0fdf6f1a8
commit b3f9f4b729

View file

@ -2237,15 +2237,18 @@ posix_pipe(self, args)
return Py_BuildValue("(ii)", fds[0], fds[1]);
#else /* MS_WIN32 */
HANDLE read, write;
int read_fd, write_fd;
BOOL ok;
if (!PyArg_Parse(args, ""))
return NULL;
Py_BEGIN_ALLOW_THREADS
ok = CreatePipe( &read, &write, NULL, 0);
ok = CreatePipe(&read, &write, NULL, 0);
Py_END_ALLOW_THREADS
if (!ok)
return posix_error();
return Py_BuildValue("(ii)", read, write);
read_fd = _open_osfhandle((long)read, 0);
write_fd = _open_osfhandle((long)write, 1);
return Py_BuildValue("(ii)", read_fd, write_fd);
#endif /* MS_WIN32 */
#endif
}