httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sascha Schumann <sas...@schumann.cx>
Subject Re: cvs commit: apache-2.0/src/lib/apr/include apr.h.in
Date Tue, 02 May 2000 16:56:24 GMT
On Tue, May 02, 2000 at 06:01:59PM +0200, Ralf S. Engelschall wrote:
> 
> In article <20000502030103.19470.qmail@locus.apache.org> you wrote:
> 
> > [...]
> >   Note that the behaviour of sigprocmask in a multi-threaded program is
> >   undefined. The AIX 4.3 documentation explicitly says "The
> >   sigprocmask, sigsetmask, and sigblock subroutines must not be used in
> >   a multi-threaded application."
> > [...]
> 
> I've currently not the time to consult my books, but I think that the
> behaviour of sigprocmask is not _undefined_ in a MT program. AFAIK POSIX
> actually defines the behaviour to be the same as for non-MT programs,
> i.e., sigprocmask() changes the signal mask of the underlaying process.
> Whether this is in sync with the thread's particular expections is a
> different point. But AFAIK it is pretty legal to use sigprocmask in a
> MT program. One just cannot assume that sigprocmask() changes only the
> threads signal mask. That's all...

Single Unix Spec II:

"The use of the sigprocmask() function is unspecified in a
multi-threaded process."

http://www.opengroup.org/onlinepubs/007908799/xsh/sigprocmask.html

There was a thread-safe sigprocmask() in Draft 4 for PTHREADS.

The final standard leaves the behaviour of sigprocmask()
undefined in a mt process.

(Note that I'm a standard freak and I usually double check
everything like the part of the commit message you quoted.)

- Sascha

Mime
View raw message