projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.43.46: Simplify some type tests to EQL comparisons
[sbcl.git]
/
src
/
runtime
/
interr.c
diff --git
a/src/runtime/interr.c
b/src/runtime/interr.c
index
c13be45
..
2187fd8
100644
(file)
--- 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. */
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);
fprintf(stderr, "fatal error encountered");
va_start(ap, fmt);
print_message(fmt, ap);
@@
-95,8
+95,10
@@
void
corruption_warning_and_maybe_lose(char *fmt, ...)
{
va_list ap;
corruption_warning_and_maybe_lose(char *fmt, ...)
{
va_list ap;
+#ifndef LISP_FEATURE_WIN32
sigset_t oldset;
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);
fprintf(stderr, "CORRUPTION WARNING");
va_start(ap, fmt);
print_message(fmt, ap);
@@
-109,10
+111,13
@@
corruption_warning_and_maybe_lose(char *fmt, ...)
fflush(stderr);
if (lose_on_corruption_p)
call_lossage_handler();
fflush(stderr);
if (lose_on_corruption_p)
call_lossage_handler();
+#ifndef LISP_FEATURE_WIN32
else
thread_sigmask(SIG_SETMASK,&oldset,0);
else
thread_sigmask(SIG_SETMASK,&oldset,0);
+#endif
}
\f
}
\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,
/* internal error handler for when the Lisp error system doesn't exist
*
* FIXME: Shouldn't error output go to stderr instead of stdout? (Alas,
@@
-125,7
+130,9
@@
describe_internal_error(os_context_t *context)
int len, scoffset, sc, offset, ch;
len = *ptr++;
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++;
len--;
while (len > 0) {
scoffset = *ptr++;