From cfdc70976e5c02f992be7bff5ad23cb067a80230 Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Thu, 17 Jan 2019 15:38:10 -0500 Subject: [PATCH FIFO, draft 3/4] Cygwin: adapt fhandler_fifo::close to recent changes --- winsup/cygwin/fhandler_fifo.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index 13d87eab5..5bc64408b 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -549,6 +549,21 @@ fhandler_fifo::fstatvfs (struct statvfs *sfs) int fhandler_fifo::close () { + HANDLE evt = InterlockedExchangePointer (&lct_termination_evt, NULL); + HANDLE thr = InterlockedExchangePointer (&listen_client_thr, NULL); + if (thr) + { + if (evt) + SetEvent (evt); + WaitForSingleObject (thr, INFINITE); + DWORD err; + GetExitCodeThread (thr, &err); + if (err) + debug_printf ("listen_client_thread exited with code %d", err); + CloseHandle (thr); + } + if (evt) + CloseHandle (evt); CloseHandle (read_ready); CloseHandle (write_ready); return fhandler_base::close (); -- 2.17.0