[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    valgrind/coregrind
From:       Jeremy Fitzhardinge <jeremy () goop ! org>
Date:       2005-03-12 0:23:56
Message-ID: 20050312002356.C24EAEED3 () office ! kde ! org
[Download RAW message or body]

CVS commit by fitzhardinge: 

For signals which are ignored by default (SIGCONT, CHLD, WINCH and URG),
don't set a signal handler unless the client has.  This prevents syscalls
from being spuriously interrupted if one if these signals is received.

BUGS: 101313


  M +9 -2      vg_signals.c   1.139


--- valgrind/coregrind/vg_signals.c  #1.138:1.139
@@ -252,6 +252,11 @@ void calculate_SKSS_from_SCSS ( SKSS* ds
 
       case VKI_SIGCONT:
-         /* Let the kernel handle SIGCONT unless the client is actually
-            catching it. */
+      case VKI_SIGCHLD:
+      case VKI_SIGWINCH:
+      case VKI_SIGURG:
+         /* For signals which are have a default action of Ignore,
+            only set a handler if the client has set a signal handler.
+            Otherwise the kernel will interrupt a syscall which
+            wouldn't have otherwise been interrupted. */
          if (vg_scss.scss_per_sig[sig].scss_handler == VKI_SIG_DFL)
             skss_handler = VKI_SIG_DFL;
@@ -263,4 +268,6 @@ void calculate_SKSS_from_SCSS ( SKSS* ds
 
       default:
+         /* VKI_SIGVG* are runtime variables, so we can't make them
+            switch cases */
          if (sig == VKI_SIGVGKILL)
             skss_handler = sigvgkill_handler;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic