$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r57995 - trunk/boost/test/impl
From: gennadiy.rozental_at_[hidden]
Date: 2009-11-28 05:25:09
Author: rogeeff
Date: 2009-11-28 05:25:09 EST (Sat, 28 Nov 2009)
New Revision: 57995
URL: http://svn.boost.org/trac/boost/changeset/57995
Log:
Avoid catching SIGCHILD altogether. One should exanine system call exit code instead. Fixes #3664
Text files modified: 
   trunk/boost/test/impl/execution_monitor.ipp |    25 -------------------------               
   1 files changed, 0 insertions(+), 25 deletions(-)
Modified: trunk/boost/test/impl/execution_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/execution_monitor.ipp	(original)
+++ trunk/boost/test/impl/execution_monitor.ipp	2009-11-28 05:25:09 EST (Sat, 28 Nov 2009)
@@ -168,7 +168,6 @@
 #      define ILL_COPROC ILL_FPOP_FAULT
 
 #      define BOOST_TEST_LIMITED_SIGNAL_DETAILS
-#      define BOOST_TEST_IGNORE_SIGCHLD
 
 #    endif 
 #  endif 
@@ -745,9 +744,6 @@
 , m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
 , m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
 , m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
-#ifndef BOOST_TEST_IGNORE_SIGCHLD
-, m_CHLD_action( SIGCHLD, catch_system_errors, attach_dbg, alt_stack )
-#endif
 #ifdef BOOST_TEST_CATCH_SIGPOLL
 , m_POLL_action( SIGPOLL, catch_system_errors, attach_dbg, alt_stack )
 #endif
@@ -813,26 +809,8 @@
 
 extern "C" {
 
-static bool ignore_sigchild( siginfo_t* info )
-{
-    return info->si_signo == SIGCHLD
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
-            && info->si_code == CLD_EXITED 
-#endif
-#ifdef BOOST_TEST_IGNORE_NON_ZERO_CHILD_CODE
-            ;
-#else
-            && (int)info->si_status == 0;
-#endif
-}
-
-//____________________________________________________________________________//
-
 static void execution_monitor_jumping_signal_handler( int sig, siginfo_t* info, void* context )
 {
-    if( ignore_sigchild( info ) )
-        return;
-
     signal_handler::sys_sig()( info, context );
 
     siglongjmp( signal_handler::jump_buffer(), sig );
@@ -842,9 +820,6 @@
 
 static void execution_monitor_attaching_signal_handler( int sig, siginfo_t* info, void* context )
 {
-    if( ignore_sigchild( info ) )
-        return;
-
     if( !debug::attach_debugger( false ) )
         execution_monitor_jumping_signal_handler( sig, info, context );