Change foo (void) to foo () for all c++ functions throughout. Remove all
fhandler_*::dump functions throughout. * fhandler.h (fhandler_dev_mem::close): Remove pass-through function in favor of virtual method. (handler_dev_raw::close): Ditto. (fhandler_dev_clipboard::fixup_after_exec): New method. * fhandler_dev_mem.cc (fhandler_dev_mem::close): Eliminate pass through * fhandler_dev_raw.cc (fhandler_dev_raw::close): Ditto. * fhandler_clipboard.cc (fhandler_dev_clipboard::close): Don't go to extra effort when execing. (fhandler_dev_clipboard::fixup_after_exec): New function. * fhandler_console.cc (fhandler_console::close): Don't do "extra stuff" when we know we're execing. * fhandler_disk_file.cc (fhandler_disk_file::close): Ditto. * fhandler_dsp.cc (fhandler_dev_dsp::close): Ditto. * fhandler_fifo.cc (fhandler_fifo.cc::close): Ditto. function in favor of base function. * fhandler_random.cc (fhandler_dev_random::close): Ditto. * fhandler_registry.cc (fhandler_registry::close): Ditto. * fhandler_tty.cc (fhandler_tty_slave::close): Ditto. * fhandler_virtual.cc (fhandler_virtual::close): Ditto. * pinfo.cc (proc_waiter): Remove unneeded hExeced declaration. * sigproc.cc: Ditto. * winsup.h (hExeced): Define here. * fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Just call close() to reinitialize things to known state.
This commit is contained in:
@@ -612,20 +612,23 @@ out:
|
||||
int
|
||||
fhandler_tty_slave::close ()
|
||||
{
|
||||
if (!--cygheap->open_fhs && myself->ctty == -1)
|
||||
FreeConsole ();
|
||||
|
||||
archetype->usecount--;
|
||||
report_tty_counts (this, "closed", "decremented ", "");
|
||||
|
||||
if (archetype->usecount)
|
||||
if (!hExeced)
|
||||
{
|
||||
if (!--cygheap->open_fhs && myself->ctty == -1)
|
||||
FreeConsole ();
|
||||
|
||||
archetype->usecount--;
|
||||
report_tty_counts (this, "closed", "decremented ", "");
|
||||
|
||||
if (archetype->usecount)
|
||||
{
|
||||
#ifdef DEBUGGING
|
||||
if (archetype->usecount < 0)
|
||||
system_printf ("error: usecount %d", archetype->usecount);
|
||||
if (archetype->usecount < 0)
|
||||
system_printf ("error: usecount %d", archetype->usecount);
|
||||
#endif
|
||||
termios_printf ("just returning because archetype usecount is != 0");
|
||||
return 0;
|
||||
termios_printf ("just returning because archetype usecount is != 0");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
termios_printf ("closing last open %s handle", ttyname ());
|
||||
@@ -1208,8 +1211,11 @@ fhandler_tty_common::close ()
|
||||
if (!ForceCloseHandle1 (get_output_handle (), to_pty))
|
||||
termios_printf ("CloseHandle (get_output_handle ()<%p>), %E", get_output_handle ());
|
||||
|
||||
inuse = NULL;
|
||||
set_io_handle (NULL);
|
||||
if (!hExeced)
|
||||
{
|
||||
inuse = NULL;
|
||||
set_io_handle (NULL);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1235,7 +1241,8 @@ fhandler_pty_master::close ()
|
||||
CloseHandle (get_ttyp ()->from_master);
|
||||
if (get_ttyp ()->to_master)
|
||||
CloseHandle (get_ttyp ()->to_master);
|
||||
get_ttyp ()->init ();
|
||||
if (!hExeced)
|
||||
get_ttyp ()->init ();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user