NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/38770: sigpending(2) does not report expected signals
>Number: 38770
>Category: kern
>Synopsis: sigpending(2) does not report expected signals
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue May 27 13:05:00 +0000 2008
>Originator: Nicolas Joly
>Release: NetBSD 4.99.63
>Organization:
Biological Software and Databanks.
Institut Pasteur, Paris.
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 4.99.63 NetBSD 4.99.63 (LANFEUST) #14:
Tue May 27 13:18:30 CEST 2008
njoly%lanfeust.sis.pasteur.fr@localhost:/local/src/NetBSD/obj.amd64/sys/arch/amd64/compile/LANFEUST
amd64
Architecture: x86_64
Machine: amd64
>Description:
I have some trouble with sigpending(2), which does not seems to report
expected pending signals.
The following testcase illustrate the problem:
njoly@lanfeust [emul/netbsd]> cat sigpending.c
#include <err.h>
#include <signal.h>
#include <unistd.h>
int main() {
int res;
sigset_t set, get;
res = sigemptyset(&set);
if (res == -1)
err(1, "sigemptyset failed");
res = sigaddset(&set, SIGUSR1);
if (res == -1)
err(1, "sigaddset failed");
res = sigprocmask(SIG_SETMASK, &set, NULL);
if (res == -1)
err(1, "sigprocmask failed");
res = raise(SIGUSR1);
if (res == -1)
err(1, "raise failed");
res = sigpending(&get);
if (res == -1)
err(1, "sigpending failed");
res = sigismember(&get, SIGUSR1);
if (res != 1)
errx(1, "sigpending missing signal");
return 0; }
njoly@lanfeust [emul/netbsd]> cc -g -Wall -Werror -o sigpending sigpending.c
njoly@lanfeust [emul/netbsd]> ./sigpending
sigpending: sigpending missing signal
The same piece of code works as expected on some other systems: Tru64,
FreeBSD and Linux.
>How-To-Repeat:
run the above testcase.
>Fix:
n/a
Home |
Main Index |
Thread Index |
Old Index