* 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.
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user