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);
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);
print_message(fmt, ap);
fflush(stderr);
if (lose_on_corruption_p)
call_lossage_handler();
+#ifndef LISP_FEATURE_WIN32
else
thread_sigmask(SIG_SETMASK,&oldset,0);
+#endif
}
\f
+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,
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++;