Jordan Brown (Sun) wrote:
 > Roland Mainz wrote:
 >> Erm... who or what defines "fatal" ? Even SIGSEGV can be caught within
 >> applications (either using alternative stacks or a seperate thread
 >> (assuming I don't mix-up things again...)) and is not fatal...
 >
 > I don't know for sure, but I think you just answered your own question.
 >   If caught, it's not fatal.  If not caught, it's fatal.

   That pretty much sums it up.

   Remember also that only a signal originating from a process in
   another contract will trigger the fatal signal logic.

 > I assume that the decision is at its lowest level "are the low-order 8
 > bits of the exit code that would be returned by wait(2) non-zero?".
 > That is, did the process die as the result of an uncaught signal?

   The signal delivery code generates the event after determining that:

     a) the signal came from outside the contract, and
     b) the process needs to die as a result of receiving the signal.

   See the bottom of psig() in common/os/sig.c.

   Dave


Reply via email to