needed.
* dtable.cc (dtable::vfork_parent_restore): Remove assertion.
* pipe.cc (fhandler_pipe::close): Don't close read_state during fork_fixup
since it wasn't inherited.
+2003-01-03 Christopher Faylor <cgf@redhat.com>
+
+ * dtable.h (dtable::in_vfork_cleanup): New function. True if vfork
+ cleanup needed.
+ * dtable.cc (dtable::vfork_parent_restore): Remove assertion.
+ * pipe.cc (fhandler_pipe::close): Don't close read_state during
+ fork_fixup since it wasn't inherited.
+
2003-01-01 Christopher Faylor <cgf@redhat.com>
* passwd.cc (getpwuid_r32): Revert previous change.
close_all_files ();
fhandler_base **deleteme = fds;
- assert (fds_on_hold != NULL);
fds = fds_on_hold;
fds_on_hold = NULL;
cfree (deleteme);
void stdio_init ();
void get_debugger_info ();
void set_file_pointers_for_exec ();
+ bool in_vfork_cleanup () {return fds_on_hold == fds;}
};
void dtable_init (void);
events_init (void)
{
char *name;
- /* title_mutex protects modification of console title. It's neccessary
+ /* title_mutex protects modification of console title. It's necessary
while finding console window handle */
if (!(title_mutex = CreateMutex (&sec_all_nih, FALSE,
CloseHandle (guard);
if (writepipe_exists)
CloseHandle (writepipe_exists);
- if (read_state)
+ if (read_state && !cygheap->fdtab.in_vfork_cleanup ())
CloseHandle (read_state);
return res;
}