https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9d4e58be76ff06a65e6f06d62ea9d1e26121b347
commit 9d4e58be76ff06a65e6f06d62ea9d1e26121b347 Author: Ken Brown <[email protected]> Date: Mon Aug 30 11:11:49 2021 -0400 Cygwin: fhandler_pipe.cc:nt_select: fix flags Diff: --- winsup/cygwin/fhandler_pipe.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc index 2dec0a848..b99f00c09 100644 --- a/winsup/cygwin/fhandler_pipe.cc +++ b/winsup/cygwin/fhandler_pipe.cc @@ -658,7 +658,7 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w, &cygheap->installation_key, GetCurrentProcessId ()); - access = GENERIC_READ | FILE_WRITE_ATTRIBUTES; + access = GENERIC_READ | FILE_WRITE_ATTRIBUTES | SYNCHRONIZE; ULONG pipe_type = pipe_byte ? FILE_PIPE_BYTE_STREAM_TYPE : FILE_PIPE_MESSAGE_TYPE; @@ -688,8 +688,8 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w, timeout.QuadPart = -500000; status = NtCreateNamedPipeFile (r, access, &attr, &io, FILE_SHARE_READ | FILE_SHARE_WRITE, - FILE_CREATE, 0, pipe_type, - FILE_PIPE_BYTE_STREAM_MODE, + FILE_CREATE, FILE_SYNCHRONOUS_IO_NONALERT, + pipe_type, FILE_PIPE_BYTE_STREAM_MODE, 0, 1, psize, psize, &timeout); if (NT_SUCCESS (status)) @@ -737,8 +737,9 @@ nt_create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w, { debug_printf ("NtOpenFile: name %S", &pipename); - access = GENERIC_WRITE | FILE_READ_ATTRIBUTES; - status = NtOpenFile (w, access, &attr, &io, 0, 0); + access = GENERIC_WRITE | FILE_READ_ATTRIBUTES | SYNCHRONIZE; + status = NtOpenFile (w, access, &attr, &io, 0, + FILE_SYNCHRONOUS_IO_NONALERT); if (!NT_SUCCESS (status)) { DWORD err = GetLastError ();
