From cc0b33128194d56e08b3deabe3916b8753a30f9f Mon Sep 17 00:00:00 2001 From: Gary Houston Date: Sat, 14 Jun 1997 19:04:24 +0000 Subject: [PATCH] * scmsigs.c (sys_deliver_signals): add a comment about a probable bug. --- libguile/ChangeLog | 4 ++++ libguile/scmsigs.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 9071517f3..627f1e4c9 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,7 @@ +Sat Jun 14 19:00:58 1997 Gary Houston + + * scmsigs.c (sys_deliver_signals): add a comment about a probable bug. + Wed Jun 11 00:33:00 1997 Jim Blandy * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 2a53c3e44..57456e0fd 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -140,6 +140,12 @@ sys_deliver_signals (void) { if (got_signal[i]) { + /* The flag is reset before calling the handler in case the + handler doesn't return. If the handler doesn't return + but leaves other signals flagged, they their handlers + will be applied some time later when the async is checked + again. It would probably be better to reset the flags + after doing a longjmp. */ got_signal[i] = 0; #ifndef HAVE_SIGACTION signal (i, take_signal);