Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jul 2004 20:22:13 -0700 (PDT)
From:      Logan Gabriel <gersh@tabby.sonn.com>
To:        standards@freebsd.org
Subject:   POSIX threads question.
Message-ID:  <20040706201547.F18570@tabby.sonn.com>

next in thread | raw e-mail | index | archive | help
Hello,

I have a question about the POSIX standard regrading sigwait().  In
FreeBSD 4.x and 5.x (with -lc_r) the behaviour of sigwait to delete
SIGCHLD (And some others) from its waitset:

>From 4.x (libc_r/uthread/uthread_sigwait.c)

        /* These signals can't be waited on. */
        sigdelset(&waitset, SIGKILL);
        sigdelset(&waitset, SIGSTOP);
        sigdelset(&waitset, _SCHED_SIGNAL);
        sigdelset(&waitset, SIGCHLD);
        sigdelset(&waitset, SIGINFO);

Does the POSIX standard say that these signals cannot be waited on or is
it specfic undefined behaviour.  Linux (RedHat 9.1/Suse 9.1), Solaris 8
and MacOS X will let me use sigwait() to wait for SIGCHLD.  FreeBSD 5.2.1
will let me do it if I use -lpthread instead of -lc_r.


(Please CC me on any responses as I am not subscribed to standards@)

Thanks,
Logan Gabriel.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040706201547.F18570>