X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbacktrace.c;h=a36d373d1e38ce67bb6feacf894bbd52ceb6352f;hb=4bf2de6a2adff75459cf218c8bff67f6cdb91211;hp=dc5b1e80aabff3f5ec1ca469d38a992b0c6619c4;hpb=cb646ea1f83b49eb121a625f1073dfed6a82bf2c;p=sbcl.git diff --git a/src/runtime/backtrace.c b/src/runtime/backtrace.c index dc5b1e8..a36d373 100644 --- a/src/runtime/backtrace.c +++ b/src/runtime/backtrace.c @@ -533,18 +533,22 @@ describe_thread_state(void) { sigset_t mask; struct thread *thread = arch_os_get_current_thread(); - pthread_sigmask(SIG_SETMASK, NULL, &mask); +#ifndef LISP_FEATURE_WIN32 + thread_sigmask(SIG_SETMASK, NULL, &mask); printf("Signal mask:\n"); printf(" SIGALRM = %d\n", sigismember(&mask, SIGALRM)); printf(" SIGINT = %d\n", sigismember(&mask, SIGINT)); printf(" SIGPROF = %d\n", sigismember(&mask, SIGPROF)); - printf(" SIG_INTERRUPT_THREAD = %d\n", sigismember(&mask, SIG_INTERRUPT_THREAD)); #ifdef SIG_STOP_FOR_GC printf(" SIG_STOP_FOR_GC = %d\n", sigismember(&mask, SIG_STOP_FOR_GC)); #endif +#endif printf("Specials:\n"); printf(" *GC-INHIBIT* = %s\n", (SymbolValue(GC_INHIBIT, thread) == T) ? "T" : "NIL"); - printf(" *GC-PENDING* = %s\n", (SymbolValue(GC_PENDING, thread) == T) ? "T" : "NIL"); + printf(" *GC-PENDING* = %s\n", + (SymbolValue(GC_PENDING, thread) == T) ? + "T" : ((SymbolValue(GC_PENDING, thread) == NIL) ? + "NIL" : ":IN-PROGRESS")); printf(" *INTERRUPTS-ENABLED* = %s\n", (SymbolValue(INTERRUPTS_ENABLED, thread) == T) ? "T" : "NIL"); #ifdef STOP_FOR_GC_PENDING printf(" *STOP-FOR-GC-PENDING* = %s\n", (SymbolValue(STOP_FOR_GC_PENDING, thread) == T) ? "T" : "NIL");