1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 22:40:25 +02:00

Avoid throw from critical section, given invalid sigaction call

* libguile/scmsigs.c (scm_sigaction_for_thread): Exit critical section
  before raising out-of-range error.

* test-suite/Makefile.am (SCM_TESTS): Add signals.test.

* test-suite/tests/signals.test: New file.
This commit is contained in:
Neil Jerram 2009-03-05 20:03:33 +00:00
parent 9a84dc8bbc
commit 499c43b032
3 changed files with 34 additions and 1 deletions

View file

@ -356,7 +356,10 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
install_handler (csig, SCM_BOOL_F, SCM_BOOL_F, async);
}
else
SCM_OUT_OF_RANGE (2, handler);
{
SCM_CRITICAL_SECTION_END;
SCM_OUT_OF_RANGE (2, handler);
}
}
else if (scm_is_false (handler))
{