* debug.cc (mark_closed): Rename from debug_mark_closed and make static.

(setclexec_pid): New function for marking saved handle as close-on-exec.
(delete_handle): New function.
(debug_fixup_after_fork): New function.
* debug.h: Declare new functions, remove obsolete ones.
* fork.cc (debug_fixup_after_fork): Call to cleanup close-on-exec handles.
* fhandler.cc (fhandler_disk_file::close): Minor reorg.
(fhandler_base::set_inheritance): Set flag appropriately for debugging when
close-on-exec so forked process can delete closed handles.
* tty.h (open_output_mutex): Eliminate unneeded argument.
(open_input_mutex): Ditto.
* fhandler_tty.cc (fhandler_tty_slave::open): reflect open_*_mutex argument
changes.
* fhandler.h (fhandler_socket): Make saw_shutdown_* functions type bool.
* tty.cc (tty::get_event): Eliminate unneeded argument.
(tty::common_init): Reflect change to get_event.  Events should always be
inherited.
This commit is contained in:
Christopher Faylor
2001-09-01 05:17:34 +00:00
parent a26a4cdbe0
commit e62ac9e869
9 changed files with 95 additions and 44 deletions

View File

@@ -785,7 +785,7 @@ fhandler_base::lseek (off_t offset, int whence)
}
int
fhandler_base::close (void)
fhandler_base::close ()
{
int res = -1;
@@ -1317,8 +1317,8 @@ out:
int
fhandler_disk_file::close ()
{
int res;
if ((res = this->fhandler_base::close ()) == 0)
int res = this->fhandler_base::close ();
if (!res)
cygwin_shared->delqueue.process_queue ();
return res;
}
@@ -1545,6 +1545,7 @@ fhandler_base::set_inheritance (HANDLE &h, int not_inheriting, const char *namep
h = newh;
ProtectHandle2 (h, name);
}
setclexec_pid (h, not_inheriting);
#endif
}