io.github.frenchy64.fully-satisfies.clearing-future

futures that clear conveyed bindings after execution.

Fixes memory leak described in https://clojure.atlassian.net/browse/CLJ-2619

clearing-future

macro

(clearing-future & body)
Takes a body of expressions and yields a future object that will
invoke the body in another thread, and will cache the result and
return it on all subsequent calls to deref/@. Clears conveyed bindings
after result has been computed. If the computation has
not yet finished, calls to deref/@ will block, unless the variant of
deref with timeout is used. See also - realized?.

clearing-future-call

(clearing-future-call f)
Takes a function of no args and yields a future object that will
invoke the function in another thread, and will cache the result and
return it on all subsequent calls to deref/@. Clears conveyed bindings
after result has been computed. If the computation has
not yet finished, calls to deref/@ will block, unless the variant
of deref with timeout is used. See also - realized?.

future

macro

(future & body)

future-call

(future-call & args)