scheme@(guile-user)> (use-modules (ice-9 control)) scheme@(guile-user)> (call/ec (lambda (c) (with-continuation-barrier (lambda () (c "through continuation"))) "c-w-b returned")) $1 = "through continuation"
The continuation barrier works fine on call/cc continuations and on throw/catch, but doesn't block call/ec continuations. The manual doesn't mention any difference in behaviour for this case, nor can I see any obvious justification for it. The manual's statement that # Thus, `with-continuation-barrier' returns exactly once. is false in this case. I think a continuation barrier should block the use of the call/ec continuation. -zefram