In article <[EMAIL PROTECTED]>,
Terry Lambert <[EMAIL PROTECTED]> wrote:
> Vaclav Haisman wrote:
> > Besides, this doesn't explain anything. I see I haven't asked any question in
> > my previous post. So, why does FreeBSD behave different?
>
> Because POSIX mandates that it do so?
>
> man 3 signal tells us:
>
> The handled signal is unblocked when the function returns and the process
> continues from where it left off when the signal occurred. Unlike previ-
> ous signal facilities, the handler func() remains installed after a sig-
> nal has been delivered.
POSIX mandates no such thing. You missed the part of the POSIX spec
that says:
The behavior of a process is undefined after it returns normally
from a signal-catching function for a SIGFPE, SIGILL, SIGSEGV,
or SIGBUS signal that was not generated by the kill() function,
the sigqueue() function, or the raise() function as defined by
the C Standard.
It's in ANSI/IEEE Std 1003.1 section 3.3.1.3.
POSIX permits the FreeBSD behavior but does not mandate it.
John
--
John Polstra
John D. Polstra & Co., Inc. Seattle, Washington USA
"Disappointment is a good sign of basic intelligence." -- Ch�gyam Trungpa
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message