diff options
author | Neil Jerram <neil@ossau.uklinux.net> | 2009-08-03 13:21:33 +0100 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2009-08-03 13:21:33 +0100 |
commit | ce2612cd886f10392161fca4daca84b903e5cefb (patch) | |
tree | 685e973ea7ca038759323b47af21aee9e6132ac8 | |
parent | 1021bb7a8de9483aaebde15d5830b36a91b5621b (diff) | |
download | guile-ce2612cd886f10392161fca4daca84b903e5cefb.tar.gz |
Move `Continuation Barriers' to the section that covers continuations
Since continuation barriers protect against non-local exits, it makes
better sense to document them in the same section as continuations and
exceptions.
-rw-r--r-- | doc/ref/api-control.texi | 28 | ||||
-rw-r--r-- | doc/ref/api-scheduling.texi | 27 |
2 files changed, 28 insertions, 27 deletions
diff --git a/doc/ref/api-control.texi b/doc/ref/api-control.texi index ed6411f29..e7614d136 100644 --- a/doc/ref/api-control.texi +++ b/doc/ref/api-control.texi @@ -22,6 +22,7 @@ flow of Scheme affects C code. * Error Reporting:: Procedures for signaling errors. * Dynamic Wind:: Dealing with non-local entrance/exit. * Handling Errors:: How to handle errors in C code. +* Continuation Barriers:: Protection from non-local control flow. @end menu @node begin @@ -1501,6 +1502,33 @@ which is the name of the procedure incorrectly invoked. @end deftypefn +@node Continuation Barriers +@subsection Continuation Barriers + +The non-local flow of control caused by continuations might sometimes +not be wanted. You can use @code{with-continuation-barrier} etc to +errect fences that continuations can not pass. + +@deffn {Scheme Procedure} with-continuation-barrier proc +@deffnx {C Function} scm_with_continuation_barrier (proc) +Call @var{proc} and return its result. Do not allow the invocation of +continuations that would leave or enter the dynamic extent of the call +to @code{with-continuation-barrier}. Such an attempt causes an error +to be signaled. + +Throws (such as errors) that are not caught from within @var{proc} are +caught by @code{with-continuation-barrier}. In that case, a short +message is printed to the current error port and @code{#f} is returned. + +Thus, @code{with-continuation-barrier} returns exactly once. +@end deffn + +@deftypefn {C Function} {void *} scm_c_with_continuation_barrier (void *(*func) (void *), void *data) +Like @code{scm_with_continuation_barrier} but call @var{func} on +@var{data}. When an error is caught, @code{NULL} is returned. +@end deftypefn + + @c Local Variables: @c TeX-master: "guile.texi" @c End: diff --git a/doc/ref/api-scheduling.texi b/doc/ref/api-scheduling.texi index e1a7acdd5..521369619 100644 --- a/doc/ref/api-scheduling.texi +++ b/doc/ref/api-scheduling.texi @@ -11,7 +11,6 @@ @menu * Arbiters:: Synchronization primitives. * Asyncs:: Asynchronous procedure invocation. -* Continuation Barriers:: Protection from non-local control flow. * Threads:: Multiple threads of execution. * Mutexes and Condition Variables:: Synchronization primitives. * Blocking:: How to block properly in guile mode. @@ -191,32 +190,6 @@ Mark the user async @var{a} for future execution. Execute all thunks from the marked asyncs of the list @var{list_of_a}. @end deffn -@node Continuation Barriers -@subsection Continuation Barriers - -The non-local flow of control caused by continuations might sometimes -not be wanted. You can use @code{with-continuation-barrier} etc to -errect fences that continuations can not pass. - -@deffn {Scheme Procedure} with-continuation-barrier proc -@deffnx {C Function} scm_with_continuation_barrier (proc) -Call @var{proc} and return its result. Do not allow the invocation of -continuations that would leave or enter the dynamic extent of the call -to @code{with-continuation-barrier}. Such an attempt causes an error -to be signaled. - -Throws (such as errors) that are not caught from within @var{proc} are -caught by @code{with-continuation-barrier}. In that case, a short -message is printed to the current error port and @code{#f} is returned. - -Thus, @code{with-continuation-barrier} returns exactly once. -@end deffn - -@deftypefn {C Function} {void *} scm_c_with_continuation_barrier (void *(*func) (void *), void *data) -Like @code{scm_with_continuation_barrier} but call @var{func} on -@var{data}. When an error is caught, @code{NULL} is returned. -@end deftypefn - @node Threads @subsection Threads @cindex threads |