X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Finterr.c;h=2187fd838ea477e503756b962572fa668102f30d;hb=e034d6a8d034a3f8ca755bf89fae850f6387c505;hp=f7da2d3670b32bf839fa579e796f55cfc6b7b349;hpb=1b32a547d26cf078ba9f2948edeb27ff91e78f49;p=sbcl.git diff --git a/src/runtime/interr.c b/src/runtime/interr.c index f7da2d3..2187fd8 100644 --- a/src/runtime/interr.c +++ b/src/runtime/interr.c @@ -79,7 +79,7 @@ lose(char *fmt, ...) va_list ap; /* Block signals to prevent other threads, timers and such from * interfering. If only all threads could be stopped somehow. */ - block_blockable_signals(); + block_blockable_signals(0, 0); fprintf(stderr, "fatal error encountered"); va_start(ap, fmt); print_message(fmt, ap); @@ -97,7 +97,7 @@ corruption_warning_and_maybe_lose(char *fmt, ...) va_list ap; #ifndef LISP_FEATURE_WIN32 sigset_t oldset; - thread_sigmask(SIG_BLOCK, &blockable_sigset, &oldset); + block_blockable_signals(0, &oldset); #endif fprintf(stderr, "CORRUPTION WARNING"); va_start(ap, fmt); @@ -117,6 +117,7 @@ corruption_warning_and_maybe_lose(char *fmt, ...) #endif } +char *internal_error_descriptions[] = {INTERNAL_ERROR_NAMES}; /* internal error handler for when the Lisp error system doesn't exist * * FIXME: Shouldn't error output go to stderr instead of stdout? (Alas, @@ -129,7 +130,9 @@ describe_internal_error(os_context_t *context) int len, scoffset, sc, offset, ch; len = *ptr++; - printf("internal error #%d\n", *ptr++); + printf("internal error #%d (%s)\n", *ptr, + internal_error_descriptions[*ptr]); + ptr++; len--; while (len > 0) { scoffset = *ptr++;