Cygwin: FIFO: slightly change the use of write_ready

Make it a manual reset event.  It's only used once to allow a reader
to open, and there's no reason to ever reset it.  Defensively set it
when a client connection is recorded, even though it should be set by
the writer that connected.
This commit is contained in:
Ken Brown 2019-06-19 11:14:37 -04:00
parent 6e7e82fee7
commit 2357091617

View File

@ -298,6 +298,7 @@ fhandler_fifo::listen_client ()
void void
fhandler_fifo::record_connection (fifo_client_handler& fc) fhandler_fifo::record_connection (fifo_client_handler& fc)
{ {
SetEvent (write_ready);
fc.state = fc_connected; fc.state = fc_connected;
nconnected++; nconnected++;
fc.fh->set_nonblocking (true); fc.fh->set_nonblocking (true);
@ -489,7 +490,7 @@ fhandler_fifo::open (int flags, mode_t)
goto out; goto out;
} }
npbuf[0] = 'w'; npbuf[0] = 'w';
if (!(write_ready = CreateEvent (sa_buf, false, false, npbuf))) if (!(write_ready = CreateEvent (sa_buf, true, false, npbuf)))
{ {
debug_printf ("CreateEvent for %s failed, %E", npbuf); debug_printf ("CreateEvent for %s failed, %E", npbuf);
res = error_set_errno; res = error_set_errno;