CVSROOT:        /cvs/src
Module name:    src
Changes by:     [EMAIL PROTECTED]       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

Reply via email to