From 23570916173c9f16213f1a524ddc96878b4c9d80 Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Wed, 19 Jun 2019 11:14:37 -0400 Subject: [PATCH] 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. --- winsup/cygwin/fhandler_fifo.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index a060cb3fc..e0af54b2e 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -298,6 +298,7 @@ fhandler_fifo::listen_client () void fhandler_fifo::record_connection (fifo_client_handler& fc) { + SetEvent (write_ready); fc.state = fc_connected; nconnected++; fc.fh->set_nonblocking (true); @@ -489,7 +490,7 @@ fhandler_fifo::open (int flags, mode_t) goto out; } 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); res = error_set_errno;