X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Finterrupt.c;h=1c9a1b52047f37057ac6e90283ae021077b1a263;hb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;hp=dac50f7955543b5d32d13fa2370c17866138ea97;hpb=a9ccc34071513a13b439eaadebfd3c05dd940392;p=sbcl.git diff --git a/src/runtime/interrupt.c b/src/runtime/interrupt.c index dac50f7..1c9a1b5 100644 --- a/src/runtime/interrupt.c +++ b/src/runtime/interrupt.c @@ -117,16 +117,20 @@ boolean internal_errors_enabled = 0; struct interrupt_data * global_interrupt_data; -/* this is used from Lisp in toplevel.lisp, replacing an older - * (sigsetmask 0) - we'd like to find out when the signal mask is - * not 0 */ +/* At the toplevel repl we routinely call this function. The signal + * mask ought to be clear anyway most of the time, but may be non-zero + * if we were interrupted e.g. while waiting for a queue. */ -/* This check was introduced in 0.8.4.x and some day will go away - * again unless we find a way to trigger it */ - -void warn_when_signals_masked () +#if 1 +void reset_signal_mask () +{ + sigset_t new; + sigemptyset(&new); + sigprocmask(SIG_SETMASK,&new,0); +} +#else +void reset_signal_mask () { - /* and as a side-eeffect, unmask them */ sigset_t new,old; int i; int wrong=0; @@ -142,6 +146,9 @@ void warn_when_signals_masked () if(wrong) fprintf(stderr,"If this version of SBCL is less than three months old, please report this.\nOtherwise, please try a newer version first\n. Reset signal mask.\n"); } +#endif + + /*