* 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:
@@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user