1 02/03/84 unwinder_
2
3
4 Entry points in unwinder_:
5 List is generated by the help command
6
7
8 :Entry: unwinder_: 02/03/84 unwinder_
9
10
11 Function: is used to perform a nonlocal goto on the Multics stack. It
12 is not intended to be called by direct programming i.e. an explicit
13 call statement in a program but rather, by the generated code of a
14 translator. For example, it is automatically invoked by a PL/I goto
15 statement involving a nonlocal label variable.
16
17
18 Syntax:
19 declare unwinder_ entry label;
20 call unwinder_ tag;
21
22
23 Arguments:
24 tag
25 is a nonlocal label variable. Input
26
27
28 Notes: When invoked, the unwinder_ subroutine traces the Multics stack
29 backward until it finds the stack frame associated with its label
30 variable argument or until the stack is exhausted. In each stack
31 frame it passes, it invokes the handler if any for the cleanup
32 condition. When it finds the desired stack frame, it passes control
33 to the procedure associated with that frame at the location indicated
34 by the label variable argument. If the desired stack frame cannot be
35 found or if other obscure error conditions arise e.g. the stack is
36 not threaded correctly, the unwinder_ subroutine signals the
37 unwinder_error condition. If the target is not on the current stack,
38 and there is a stack in a higher ring, that stack is searched after
39 the current one is unwound.