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



Reply via email to