This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

src/winsup/cygwin ChangeLog child_info.h cyghe ...


CVSROOT:	/cvs/src
Module name:	src
Changes by:	cgf@sourceware.org	2004-11-26 04:15:10

Modified files:
	winsup/cygwin  : ChangeLog child_info.h cygheap.h cygthread.cc 
	                 cygthread.h cygtls.cc cygtls.h dcrt0.cc 
	                 debug.cc dtable.cc exceptions.cc external.cc 
	                 fhandler_console.cc fhandler_tty.cc fork.cc 
	                 init.cc pinfo.cc pinfo.h select.cc signal.cc 
	                 sigproc.cc sigproc.h spawn.cc syscalls.cc 
	                 timer.cc times.cc tlsoffsets.h tty.cc wait.cc 
	                 window.cc 
	winsup/cygwin/include/sys: cygwin.h wait.h 
Removed files:
	winsup/cygwin  : perthread.h 

Log message:
	* child_info.h (child_info_spawn::hexec_proc): Eliminate.
	* dcrt0.cc (dll_crt0_0): Remove hexec_proc stuff.
	* fork.cc (fork_child): Remove call to pinfo_fixup_after_fork.
	* pinfo.cc (set_myself): Close and zero pid_handle if set.
	(pinfo_fixup_after_fork): Delete.
	(proc_waiter): Don't close vchild.hProcess here.  Do that when we are remove
	the vchild from procs.  Save hProcess as pid_handle only on first reparent
	operation.
	(pinfo::wait): Don't set pid_handle here.
	(pinfo::alert_parent): Always try to send signal.  If unsuccessful then close
	and zero wr_proc_pipe.
	* pinfo.h (pinfo::pinfo): Make sure that appropriate parts of the class are
	zeroed on construction.
	(pinfo::alert_parent): Take char argument.
	(pinfo_fixup_after_fork): Delete declaration.
	(hexec_proc): Ditto.
	* sigproc.cc (remove_proc): Close pid_handle and hProcess if appropriate.
	* spawn.cc (spawn_guts): Set cygheap->pid_handle on first exec.
	* cygheap.h (init_cygheap::pid_handle): New element.
	* pinfo.cc (set_myself): Clear previously existing cygheap->pid_handle when a
	new process has been started.
	(pinfo::wait): Make sure that a handle to the newly forked/spawned process is
	kept around so that the pid will not be reused.
	* pinfo.h (_pinfo::pid_handle): Move.
	(pinfo::pid_handle): to here.
	* spawn.cc (spawn_guts): Create a pid_handle in cygheap prior to spawning to
	ensure that the pid does not get reused during the lifetime of the "cygwin
	pid".
	* pinfo.h (pinfo::alert_parent): New function.
	* exceptions.cc (sig_handle_tty_stop): Use alert_parent to send "signals" to
	parent.
	* fork.cc (fork_parent): Don't close pi.hProcess.  Let the waiter thread do
	that.
	* pinfo.cc (proc_waiter): Detect case where process exits without setting the
	exit code and use value from GetExitCodeProcess.  Reluctantly implement
	__SIGREPARENT.
	(pinfo::alert_parent): Define.
	* sigproc.h (__SIGREPARENT): New enum.
	* spawn.cc (spawn_guts): Send reparent signal to parent on exec.  Always create
	process in suspended state to avoid races.  Remove cygthread.h in favor of
	cygtls.h throughout since cygtls now includes cygthread.h.  Eliminate
	ppid_handle usage throughout.
	* child_info.h: Regenerate magic number
	(child_info): Remove pppid_handle.
	* cygthread.h (cygthread::release): New method.  Frees thread without waiting.
	* cygthread.cc (cygthread::stub): Set _ctinfo in _mytls to point to information
	for executing thread.  Don't call SetEvent if thread is no longer in use.
	(cygthread::simplestub): Ditto.
	* cygtls.h (_cygtls::_ctinfo): New element contains pointer to information
	about executing cygthread, if any.
	* dcrt0.cc: Remove last vestiges of per_thread stuff.
	(dll_crt0_0): Ditto.  Remove accommodation for ppid_handle.
	(do_exit): Remove obsolete reparenting test.
	(_exit): Exit with a more SUSv3-like exit value.
	* dtable.cc (dtable::stdio_init): Check for myself->cygstarted rather than
	myself->ppid_handle to see if we were started by a cygwin process.
	* exceptions.cc (open_stackdumpfile): Ditto.
	(handle_exceptions): Ditto.
	(ctrl_c_handler): Ditto.
	(sig_handle_tty_stop): Ditto.  Let parent send signal to itself on STOP.
	(sigpacket::process): Comment out vfork test.
	(signal_exit): Use more SUSv3-like exit value on signal.
	* external.cc (fillout_pinfo): Don't set hProcess.
	* fork.cc: Remove VFORK cruft.
	(per_thread::set): Delete.
	(fork_child): Remove perthread stuff.
	(fork_parent): Remove obsolete subproc_init.  Accommodate new method for
	tracking subprocesses.
	* pinfo.cc (set_myself): Accommodate new pinfo/_pinfo layout.  Set some things
	here that used to be set in wait_sig.
	(_pinfo::exit): Set exitcode here.  Close process pipe.
	(_pinfo::commune_send): Accommodeate new pinfo/_pinfo layout.
	(proc_waiter): New function.  Waits, in a thread for subprocess to go away.
	(pinfo::wait): New function.  Initialization for proc_waiter.
	* pinfo.h (_pinfo::exitcode): New element.
	(_pinfo::cygstarted): Ditto.
	(_pinfo::wr_proc_pipe): Ditto.
	(_pinfo::ppid_handle): Delete.
	(_pinfo::hProcess): Delete.
	(_pinfo::lock): Delete.
	(pinfo::hProcess): New element.
	(pinfo::lock): Ditto.
	(pinfo::wait): Declare new function.
	(pinfo::preserve): Define new function.
	* sigproc.cc: Remove old stuff from wait_subproc thread based method.
	(zombies): Remove.
	(procs): New.
	(my_parent_is_alive): Just check that the parent pid exists.
	(mychild): Just use pinfo methods to determine if child is mine.
	(proc_subproc): Revamp PROC_ADDCHILD to use pinfo::wait.  Remove
	PROC_CHILDTERMINATED logic.  Use different method to remove processes from list
	when SIGCHLD == SIG_IGN.
	(proc_terminate): Gut.
	(subproc_init): Delete.
	(init_child_info): Remove setting of pppid_handle.
	(checkstate): Revamp to only scan procs array.
	(remove_proc): Rename from remove_zombie.  Don't close hProcess or pid_handle.
	Don't release memory if it's myself.
	(stopped_or_terminated): Change logic to handle new consolidated proc/zombie
	array.
	(wait_subproc): Delete.
	* sigproc.h: Remove obsolete EXIT_* defines.
	(subproc_init): Remove declaration.
	* spawn.cc (spawn_guts): Remove reparenting stuff.  Use standard wait logic to
	wait for child if started from a non-cygwin process.
	* tlsoffsets.h: Regenerate.
	* tty.cc (tty_init): Check for myself->cygstarted rather than
	myself->ppid_handle to see if we were started by a cygwin process.
	* include/sys/signal.h (external_pinfo::exitcode): Replace hProcess.
	* include/sys/wait.h (WCOREDUMP): Define.
	* fhandler_tty.cc (fhandler_tty_slave::read): Add debugging output for timeout
	case.
	* signal.cc (abort): Flag that we are exiting with the ABORT signal.

Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/ChangeLog.diff?cvsroot=src&r1=1.2595&r2=1.2596
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/child_info.h.diff?cvsroot=src&r1=1.45&r2=1.46
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygheap.h.diff?cvsroot=src&r1=1.92&r2=1.93
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygthread.cc.diff?cvsroot=src&r1=1.44&r2=1.45
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygthread.h.diff?cvsroot=src&r1=1.21&r2=1.22
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygtls.cc.diff?cvsroot=src&r1=1.17&r2=1.18
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygtls.h.diff?cvsroot=src&r1=1.24&r2=1.25
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/dcrt0.cc.diff?cvsroot=src&r1=1.223&r2=1.224
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/debug.cc.diff?cvsroot=src&r1=1.49&r2=1.50
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/dtable.cc.diff?cvsroot=src&r1=1.142&r2=1.143
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/exceptions.cc.diff?cvsroot=src&r1=1.220&r2=1.221
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/external.cc.diff?cvsroot=src&r1=1.67&r2=1.68
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fhandler_console.cc.diff?cvsroot=src&r1=1.131&r2=1.132
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fhandler_tty.cc.diff?cvsroot=src&r1=1.136&r2=1.137
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fork.cc.diff?cvsroot=src&r1=1.137&r2=1.138
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/init.cc.diff?cvsroot=src&r1=1.37&r2=1.38
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/pinfo.cc.diff?cvsroot=src&r1=1.121&r2=1.122
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/pinfo.h.diff?cvsroot=src&r1=1.64&r2=1.65
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/select.cc.diff?cvsroot=src&r1=1.102&r2=1.103
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/signal.cc.diff?cvsroot=src&r1=1.61&r2=1.62
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/sigproc.cc.diff?cvsroot=src&r1=1.201&r2=1.202
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/sigproc.h.diff?cvsroot=src&r1=1.70&r2=1.71
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/spawn.cc.diff?cvsroot=src&r1=1.153&r2=1.154
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/syscalls.cc.diff?cvsroot=src&r1=1.350&r2=1.351
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/timer.cc.diff?cvsroot=src&r1=1.2&r2=1.3
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/times.cc.diff?cvsroot=src&r1=1.54&r2=1.55
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/tlsoffsets.h.diff?cvsroot=src&r1=1.15&r2=1.16
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/tty.cc.diff?cvsroot=src&r1=1.66&r2=1.67
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/wait.cc.diff?cvsroot=src&r1=1.32&r2=1.33
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/window.cc.diff?cvsroot=src&r1=1.33&r2=1.34
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/perthread.h.diff?cvsroot=src&r1=1.22&r2=NONE
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/include/sys/cygwin.h.diff?cvsroot=src&r1=1.54&r2=1.55
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/include/sys/wait.h.diff?cvsroot=src&r1=1.2&r2=1.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]