12 Continuation Marks

▼ |  | Inside: Racket C API

1 | Overview
2 | Embedding into a Program
3 | Writing Racket Extensions
4 | Values and Types
5 | Memory Allocation
6 | Namespaces and Modules
7 | Procedures
8 | Evaluation
9 | Exceptions and Escape Continuations
10 | Threads
11 | Parameterizations
12 | Continuation Marks
13 | String Encodings
14 | Bignums, Rationals, and Complex Numbers
15 | Ports and the Filesystem
16 | Structures
17 | Security Guards
18 | Custodians
19 | Subprocesses
20 | Miscellaneous Utilities
| Index

top ← prev up next →

### 12`` Continuation Marks

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 →