* fhandler.h (fhandler_fifo::arm): Declare new function.

* fhandler_fifo.cc (fhandler_fifo::arm): Define new function.
(fhandler_fifo::open): Fix handling of RDWR pipes to avoid opening a second
handle.  Use arm() function to set events.
(fhandler_fifo::raw_read): Correctly go into "connect again logic" when we
detect another writer is available.  Use arm() function to set event.
* pipe.cc (fhandler_pipe::create): Add more detail to debugging output.
This commit is contained in:
Christopher Faylor
2012-01-22 21:43:25 +00:00
parent 5b09af7a51
commit 1ad58ee709
4 changed files with 49 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
/* pipe.cc: pipe for Cygwin.
Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011 Hat, Inc.
2008, 2009, 2010, 2011, 2011 Hat, Inc.
This file is part of Cygwin.
@@ -306,7 +306,7 @@ fhandler_pipe::create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w,
{
/* Failure. */
DWORD err = GetLastError ();
debug_printf ("CreateFile failed, %E");
debug_printf ("CreateFile failed, r %p, %E", r);
if (r)
CloseHandle (*r);
*w = NULL;