summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-05-04 06:00:05 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-05-04 06:00:05 -0700
commitf33a3b23cbec3a636a67b070e3ed4245ed7fc155 (patch)
tree42d2739a5080d858b443cc0acf6469892df1c220
parentea5484fd84635136a6ebfc68b79dd838bc150c8f (diff)
downloadtxr-f33a3b23cbec3a636a67b070e3ed4245ed7fc155.tar.gz
txr-f33a3b23cbec3a636a67b070e3ed4245ed7fc155.tar.bz2
txr-f33a3b23cbec3a636a67b070e3ed4245ed7fc155.zip
doc: clarify when exit points are torn down.
* txr.1: Adding a paragraph under unwind-protect clarifying that exit points are removed during unwinding, not during the search for an exit point.
-rw-r--r--txr.111
1 files changed, 11 insertions, 0 deletions
diff --git a/txr.1 b/txr.1
index efbad32f..95d79f2b 100644
--- a/txr.1
+++ b/txr.1
@@ -34193,6 +34193,17 @@ a dynamic control transfer such as an exception, and that
initiates its own dynamic control transfer, the original control transfer
is aborted and replaced with the new one.
+The exit points for dynamic control transfers are removed as unwinding takes
+place. That is to say, at the start of a dynamic control transfer, a search
+takes place for the target exit point. That search might skip other exit points
+which aren't targets of the control transfer. Those skipped exit points are left
+undisturbed and are still visible during unwinding until their individual
+binding forms are abandoned. Thus at the time of execution of an
+.code unwind-protect
+.metn cleanup-form ,
+all of the exit points of dynamically surrounding forms are still visible, even
+ones which are nearer than the targeted exit point.
+
.TP* Example:
.cblk
(block foo