I believe that POSIX definitions for the behavior of SIGTSTP and sigwait()
allow for
implementation-defined semantics here. In section 3.3.1.3 (1)(b), "if the
default action
is to stop the process, the execution of that process is temporarily suspended."
Other parts of 3.3.1.3 address other values of the signal handler.
In section 3.3.8, the last sentence of the second paragraph says, "The effect
of sigwait()
on the signal actions for the signals in set is unspecified". This allows an
implementation
to change the signal handler to indicate the presence of a sigwait()ing thread,
which would
have the side effect of voiding the conditions for 3.3.1.3(1)(b). However,
Solaris, does not
modify the signal handler during sigwait(), so the semantics of 3.3.1.3(1)(b)
apply.
It's not obvious how OpenSolaris might have the same semantics as other OSes
with
only minor changes to the kernel signal processing code.
-JZ
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code