diff options
author | Christopher Faylor <me@cgf.cx> | 2010-04-02 18:55:02 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2010-04-02 18:55:02 +0000 |
commit | 5151c80c8a6b9dcb6d6e3aa45df8f1a80414582b (patch) | |
tree | 48c04d75d6bc67f32c63a8f573f40b618009df73 /winsup/cygwin/pipe.cc | |
parent | 60efdd0c4cb7a0eb6410e08888b24f5265fd0966 (diff) | |
download | newlib-5151c80c8a6b9dcb6d6e3aa45df8f1a80414582b.zip newlib-5151c80c8a6b9dcb6d6e3aa45df8f1a80414582b.tar.gz newlib-5151c80c8a6b9dcb6d6e3aa45df8f1a80414582b.tar.bz2 |
* fhandler.h (fhandler_base::setup_overlapped): Delete virtual declaration.
(fhandler_base::destroy_overlapped): Ditto.
(fhandler_base_overlapped): Remove now-unneeded friend.
(fhandler_base_overlapped::setup_overlapped): Return int, remove parameter.
(fhandler_base_overlapped::get_overlapped): Return reference.
(fhandler_base_overlapped::fhandler_base_overlapped): Be more assertive about
zeroing everything.
(fhandler_base_overlapped::fixup_after_fork): Declare new function.
(fhandler_base_overlapped::fixup_after_exec): Ditto.
(fhandler_base_overlapped::dup): Ditto.
(fhandler_base_overlapped::close): Ditto.
* fhandler_fifo.cc (fhandler_fifo::dup): Call fhandler_base_overlapped::dup
rather than fhandler_base::dup.
* pipe.cc (fhandler_pipe::dup): Ditto.
(fhandler_pipe::init): Accommodate change in setup_overlapped arguments for
"opened_properly" case.
Diffstat (limited to 'winsup/cygwin/pipe.cc')
-rw-r--r-- | winsup/cygwin/pipe.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/winsup/cygwin/pipe.cc b/winsup/cygwin/pipe.cc index 9f3e6fb..29bd732 100644 --- a/winsup/cygwin/pipe.cc +++ b/winsup/cygwin/pipe.cc @@ -54,7 +54,10 @@ fhandler_pipe::init (HANDLE f, DWORD a, mode_t mode) a &= ~FILE_CREATE_PIPE_INSTANCE; fhandler_base::init (f, a, mode); close_on_exec (mode & O_CLOEXEC); - setup_overlapped (opened_properly); + if (opened_properly) + setup_overlapped (); + else + destroy_overlapped (); return 1; } @@ -185,7 +188,7 @@ fhandler_pipe::dup (fhandler_base *child) ftp->set_popen_pid (0); int res; - if (get_handle () && fhandler_base::dup (child)) + if (get_handle () && fhandler_base_overlapped::dup (child)) res = -1; else res = 0; |