diff options
-rw-r--r-- | libguile/scmsigs.c | 5 | ||||
-rw-r--r-- | test-suite/Makefile.am | 1 | ||||
-rw-r--r-- | test-suite/tests/signals.test | 29 |
3 files changed, 34 insertions, 1 deletions
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index d9b36c574..f38d15c75 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -340,7 +340,10 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0, install_handler (csig, SCM_BOOL_F, SCM_BOOL_F); } else - SCM_OUT_OF_RANGE (2, handler); + { + SCM_CRITICAL_SECTION_END; + SCM_OUT_OF_RANGE (2, handler); + } } else if (scm_is_false (handler)) { diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am index 476d6e688..f47ccbafd 100644 --- a/test-suite/Makefile.am +++ b/test-suite/Makefile.am @@ -67,6 +67,7 @@ SCM_TESTS = tests/alist.test \ tests/reader.test \ tests/receive.test \ tests/regexp.test \ + tests/signals.test \ tests/socket.test \ tests/srcprop.test \ tests/srfi-1.test \ diff --git a/test-suite/tests/signals.test b/test-suite/tests/signals.test new file mode 100644 index 000000000..7cab85e18 --- /dev/null +++ b/test-suite/tests/signals.test @@ -0,0 +1,29 @@ +;;;; signals.test --- test suite for Guile's signal functions -*- scheme -*- +;;;; +;;;; Copyright (C) 2009 Free Software Foundation, Inc. +;;;; +;;;; This program is free software; you can redistribute it and/or modify +;;;; it under the terms of the GNU General Public License as published by +;;;; the Free Software Foundation; either version 2, or (at your option) +;;;; any later version. +;;;; +;;;; This program is distributed in the hope that it will be useful, +;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;;; GNU General Public License for more details. +;;;; +;;;; You should have received a copy of the GNU General Public License +;;;; along with this software; see the file COPYING. If not, write to +;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;;;; Boston, MA 02110-1301 USA + + +(use-modules (test-suite lib)) + +(with-test-prefix "sigaction" + + (pass-if-exception "handler arg is an invalid integer" + exception:out-of-range + (sigaction SIGINT 51)) + + ) |