This is the mail archive of the cygwin-patches mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH fifo 0/2] Add support for duplex FIFOs

On 3/25/2019 7:06 PM, Ken Brown wrote:
> The second patch in this series enables opening a FIFO with O_RDWR
> access.  The underlying Windows named pipe is created with duplex
> access, and its handle is made the I/O handle of the first client.
> I tested the patch in two ways.
> First,


> The second test was the following sequence of commands in a bash
> shell:
> $ mkfifo foo
> $ exec 7<>foo
> $ echo blah > foo
> $ read bar <&7
> $ echo $bar
> blah

I just realized that this doesn't test *writing* to the fd of a FIFO opened with 
O_RDWR.  If I change the third command to "echo blah >&7", it does test this, 
and the write fails with ECOMM.  It turns out that the call to NtWriteFile in 
fhandler_fifo::raw_write fails with STATUS_PIPE_LISTENING.

Corinna, I'll try to debug this, but since I know you're about to be AFK for a 
month, I thought I'd check to see if you have any idea why this would happen.

The Windows named pipe that we're writing to was created by a call to 
NtCreateNamedPipeFile with access = GENERIC_READ |GENERIC_WRITE | 
nonblocking mode by a call to NtSetInformationFile with fpi.CompletionMode = 

Thanks for any suggestions.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]