► |  | Inside: Racket C API

I | Inside Racket CS
II | Inside Racket BC (3m and CGC)
III | Appendices
| Index

▼ | II | Inside Racket BC (3m and CGC)

8 | Overview (BC)
9 | Embedding into a Program (BC)
10 | Writing Racket Extensions (BC)
11 | Values and Types (BC)
12 | Memory Allocation (BC)
13 | Namespaces and Modules (BC)
14 | Procedures (BC)
15 | Evaluation (BC)
16 | Exceptions and Escape Continuations (BC)
17 | Threads (BC)
18 | Parameterizations (BC)
19 | Continuation Marks (BC)
20 | String Encodings (BC)
21 | Bignums, Rationals, and Complex Numbers (BC)
22 | Ports and the Filesystem (BC)
23 | Structures (BC)
24 | Security Guards (BC)
25 | Custodians (BC)
26 | Subprocesses (BC)
27 | Miscellaneous Utilities (BC)

top ← prev up next →

### 19`` Continuation Marks (BC)

A mark can be attached to the current continuation frame using scheme_set_cont_mark. To force the creation of a new frame (e.g., during a nested function call within your function), use scheme_push_continuation_frame, and then remove the frame with scheme_pop_continuation_frame.

void |  | scheme_set_cont_mark | ( | Scheme_Object* key,
|  |  |  | Scheme_Object* val)

Add/sets a continuation mark in the current continuation.

void |  | scheme_push_continuation_frame | ( | Scheme_Cont_Frame_Data* data)

Creates a new continuation frame. The data record need not be initialized, and it can be allocated on the C stack. Supply data to scheme_pop_continuation_frame to remove the continuation frame.

void |  | scheme_pop_continuation_frame | ( | Scheme_Cont_Frame_Data* data)

Removes a continuation frame created by scheme_push_continuation_frame.
top ← prev up next →