Module Name:    src
Committed By:   christos
Date:           Wed Aug 31 16:05:44 UTC 2011

Modified Files:
        src/sys/kern: kern_sig.c

Log Message:
Make sigispending() return the signal that is pending, or 0. Fix the comment
that said that it returns true or false (it returned EINTR or 0 before).
Perhaps we should rename the function now?


To generate a diff of this commit:
cvs rdiff -u -r1.310 -r1.311 src/sys/kern/kern_sig.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/kern_sig.c
diff -u src/sys/kern/kern_sig.c:1.310 src/sys/kern/kern_sig.c:1.311
--- src/sys/kern/kern_sig.c:1.310	Wed Jul 27 09:45:49 2011
+++ src/sys/kern/kern_sig.c	Wed Aug 31 12:05:44 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig.c,v 1.310 2011/07/27 13:45:49 uebayasi Exp $	*/
+/*	$NetBSD: kern_sig.c,v 1.311 2011/08/31 16:05:44 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.310 2011/07/27 13:45:49 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.311 2011/08/31 16:05:44 christos Exp $");
 
 #include "opt_ptrace.h"
 #include "opt_compat_sunos.h"
@@ -688,10 +688,10 @@
 /*
  * sigispending:
  *
- *	Return true if there are pending signals for the current LWP.  May
- *	be called unlocked provided that LW_PENDSIG is set, and that the
- *	signal has been posted to the appopriate queue before LW_PENDSIG is
- *	set.
+ *	Return the first signal number if there are pending signals for the
+ *	current LWP.  May be called unlocked provided that LW_PENDSIG is set,
+ *	and that the signal has been posted to the appopriate queue before
+ *	LW_PENDSIG is set.
  */ 
 int
 sigispending(struct lwp *l, int signo)
@@ -707,10 +707,10 @@
 	sigminusset(&l->l_sigmask, &tset);
 
 	if (signo == 0) {
-		if (firstsig(&tset) != 0)
-			return EINTR;
+		if ((signo = firstsig(&tset)) != 0)
+			return signo;
 	} else if (sigismember(&tset, signo))
-		return EINTR;
+		return signo;
 
 	return 0;
 }

Reply via email to