CVSROOT: /cvs/uberbaum Module name: winsup Changes by: c...@sourceware.org 2013-04-09 01:01:19
Modified files: cygwin : ChangeLog cygtls.h cygwait.cc cygwait.h exceptions.cc sigproc.cc sigproc.h Log message: * cygtls.h (_cygtls::reset_signal_arrived): Actually reset the signal_arrived event. (_cygtls::handle_SIGCONT): Declare ew function. * cygwait.cc (is_cw_sig_handle): Delete. (is_cw_sig_cont): New convenience define. (cygwait): Clear signal if is_cw_sig_cont and we got a SIGCONT. * cygwait.h (cw_wait_mask): Add cw_sig_cont. * exceptions.cc (sig_handle_tty_stop): Tighten "incyg" region. Use cw_sig_cont param for cygwait. Don't zero signal here outside of lock. (sigpacket::setup_handler): Don't check for in_forkee since we will now never get here in that state. (_cygtls::handle_SIGCONT): Define new function. (sigpacket::process): Call handle_SIGCONT early to deal with SIGCONT. Nuke continue_now handling. Allow SIGKILL to kill a suspended process. Delete a couple of now-unneeded labels. (_cygtls::call_signal_handler): Reorganize setting of incyg within lock. * sigproc.cc (pending_signals): Simplify. (pending_signals::clear): New method. (_cygtls::remove_wq): Reorganize to always close wq.thread_ev if it exists to avoid handle leaks. (sig_clear): Simplify by just calling sigq.clear(). (sig_dispatch_pending): Always call sigq.pending even in signal thread to force another loop in wait_sig. (sig_send): Remove a "goto out" just before out: label. (pending_signals::add): Simplify. (pending_signals::del): Delete. (pending_signals::next): Delete. (wait_sig): Define variable q to be the start of the signal queue. Just iterate through sigq queue, deleting processed or zeroed signals. Only set clearwait when the current signal is SIGCHLD. * sigproc.h: Add a comment about an unused enum. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/ChangeLog.diff?cvsroot=uberbaum&r1=1.6088&r2=1.6089 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/cygtls.h.diff?cvsroot=uberbaum&r1=1.90&r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/cygwait.cc.diff?cvsroot=uberbaum&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/cygwait.h.diff?cvsroot=uberbaum&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/exceptions.cc.diff?cvsroot=uberbaum&r1=1.415&r2=1.416 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/sigproc.cc.diff?cvsroot=uberbaum&r1=1.411&r2=1.412 http://sourceware.org/cgi-bin/cvsweb.cgi/winsup/cygwin/sigproc.h.diff?cvsroot=uberbaum&r1=1.125&r2=1.126