Fluids
======
- primitive: make-fluid
Return a newly created fluid. Fluids are objects of a certain
type (a smob) that can hold one SCM value per dynamic root. That
is, modifications to this value are only visible to code that
executes within the same dynamic root as the modifying code. When
a new dynamic root is constructed, it inherits the values from its
parent. Because each thread executes in its own dynamic root, you
can use fluids for thread local storage.
- primitive: fluid? obj
Return #t iff OBJ is a fluid; otherwise, return #f.
- primitive: fluid-ref fluid
Return the value associated with FLUID in the current dynamic root.
If FLUID has not been set, then this returns #f.
- primitive: fluid-set! fluid value
Set the value associated with FLUID in the current dynamic root.
- primitive: with-fluids* fluids values thunk
Set FLUIDS to VALUES temporary, and call THUNK. FLUIDS must be a
list of fluids and VALUES must be the same number of their values
to be applied. Each substitution is done one after another.
THUNK must be a procedure with no argument.