Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/kern PR/40594: Antti Kantee: Don't call issignal() here ...



details:   https://anonhg.NetBSD.org/src/rev/aebd59bbd5a5
branches:  trunk
changeset: 769105:aebd59bbd5a5
user:      christos <christos%NetBSD.org@localhost>
date:      Wed Aug 31 16:09:55 2011 +0000

description:
PR/40594: Antti Kantee: Don't call issignal() here to determine what errno
to set for the interrupted syscall, because issignal() will consume the signal
and it will not be delivered to the process afterwards. Instead call
sigispending() (which now returns the first pending signal) and does not
consume the signal.

diffstat:

 sys/kern/kern_sleepq.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (27 lines):

diff -r 22998744cd13 -r aebd59bbd5a5 sys/kern/kern_sleepq.c
--- a/sys/kern/kern_sleepq.c    Wed Aug 31 16:05:44 2011 +0000
+++ b/sys/kern/kern_sleepq.c    Wed Aug 31 16:09:55 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_sleepq.c,v 1.41 2011/07/27 14:35:34 uebayasi Exp $        */
+/*     $NetBSD: kern_sleepq.c,v 1.42 2011/08/31 16:09:55 christos Exp $        */
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sleepq.c,v 1.41 2011/07/27 14:35:34 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sleepq.c,v 1.42 2011/08/31 16:09:55 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -284,7 +284,7 @@
                         * not recurse again.
                         */
                        mutex_enter(p->p_lock);
-                       if ((sig = issignal(l)) != 0)
+                       if ((sig = sigispending(l, 0)) != 0)
                                error = sleepq_sigtoerror(l, sig);
                        mutex_exit(p->p_lock);
                }



Home | Main Index | Thread Index | Old Index