diff --git a/libsrc/common/raise.s b/libsrc/common/raise.s index 753def8a8..db96cdcd0 100644 --- a/libsrc/common/raise.s +++ b/libsrc/common/raise.s @@ -28,6 +28,15 @@ _raise: sta jmpvec+1 lda sigtable+1,x sta jmpvec+2 + +; Reset the signal handler to SIG_DFL (I don't like this because it may +; introduce race conditions, but it's the simplest way to satisfy the +; standard). + + lda #<__sig_dfl + sta sigtable,x + lda #>__sig_dfl + sta sigtable+1,x ; Restore the signal number and call the function @@ -42,3 +51,4 @@ _raise: invalidsig: rts +