diff options
-rw-r--r-- | libguile/continuations.c | 16 | ||||
-rw-r--r-- | test-suite/tests/continuations.test | 13 |
2 files changed, 4 insertions, 25 deletions
diff --git a/libguile/continuations.c b/libguile/continuations.c index 28b6236c7..dc6850e05 100644 --- a/libguile/continuations.c +++ b/libguile/continuations.c @@ -477,13 +477,7 @@ c_body (void *d) static SCM c_handler (void *d, SCM tag, SCM args) { - struct c_data *data; - - /* Print a message. Note that if TAG is `quit', this will exit() the - process. */ - scm_handle_by_message_noexit (NULL, tag, args); - - data = (struct c_data *)d; + struct c_data *data = (struct c_data *)d; data->result = NULL; return SCM_UNSPECIFIED; } @@ -496,7 +490,7 @@ scm_c_with_continuation_barrier (void *(*func) (void *), void *data) c_data.data = data; scm_i_with_continuation_barrier (c_body, &c_data, c_handler, &c_data, - NULL, NULL); + scm_handle_by_message_noexit, NULL); return c_data.result; } @@ -514,10 +508,6 @@ scm_body (void *d) static SCM scm_handler (void *d, SCM tag, SCM args) { - /* Print a message. Note that if TAG is `quit', this will exit() the - process. */ - scm_handle_by_message_noexit (NULL, tag, args); - return SCM_BOOL_F; } @@ -539,7 +529,7 @@ SCM_DEFINE (scm_with_continuation_barrier, "with-continuation-barrier", 1,0,0, scm_data.proc = proc; return scm_i_with_continuation_barrier (scm_body, &scm_data, scm_handler, &scm_data, - NULL, NULL); + scm_handle_by_message_noexit, NULL); } #undef FUNC_NAME diff --git a/test-suite/tests/continuations.test b/test-suite/tests/continuations.test index a436b90d4..f6db40e58 100644 --- a/test-suite/tests/continuations.test +++ b/test-suite/tests/continuations.test @@ -1,7 +1,7 @@ ;;;; -*- scheme -*- ;;;; continuations.test --- test suite for continutations ;;;; -;;;; Copyright (C) 2003, 2006, 2009, 2011 Free Software Foundation, Inc. +;;;; Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -80,17 +80,6 @@ (error "Catch me if you can!"))))))))) handled)) - (pass-if "exit unwinds dynwinds inside a continuation barrier" - (let ((s (with-error-to-string - (lambda () - (with-continuation-barrier - (lambda () - (dynamic-wind - (lambda () #f) - (lambda () (exit 1)) - (lambda () (throw 'abcde))))))))) - (and (string-contains s "abcde") #t))) - (with-debugging-evaluator (pass-if "make a stack from a continuation" |