1 Language Model
2 Syntactic Forms
3 Datatypes
4 Structures
5 Classes and Objects
6 Units
7 Contracts
8 Pattern Matching
9 Control Flow
10 Concurrency
11 Macros
12 Input and Output
13 Reflection and Security
14 Operating System
15 Memory Management
16 Running PLT Scheme
Bibliography
Index
On this page:
make-ephemeron
ephemeron-value
ephemeron?
Version: 4.0.2

 

15.2 Ephemerons

An ephemeron is similar to a weak box (see Weak Boxes), except that

In particular, an ephemeron can be combined with a weak hash table (see Hash Tables) to produce a mapping where the memory manager can reclaim key–value pairs even when the value refers to the key.

(make-ephemeron key v)  ephemeron?

  key : any/c

  v : any/c

Returns a new ephemeron whose key is key and whose value is initially v.

(ephemeron-value ephemeron)  any

  ephemeron : ephemeron?

Returns the value contained in ephemeron. If the garbage collector has proven that the key for ephemeron is only weakly reachable, then the result is #f.

(ephemeron? v)  boolean?

  v : any/c

Returns #t if v is an ephemeron, #f otherwise.