<div dir="ltr">> Yes.  So to be clearer, Gambit’s runtime system keeps a weak reference <br><div class="gmail_extra">> to each will created with make-will.  The weak reference is severed when <br>> the will’s action procedure is executed, making the will unreachable.  This<br>
> allows the will object itself to be reclaimed after the action procedure is<br>> executed.<br><br></div><div class="gmail_extra">Clearer indeed!<br><br>Just for the benefit of anyone following this (i.e. this is not a question), I inferred this in the gsi REPL: the weak reference to the will seems to be severed even if the action procedure has made the object reachable again (e.g. by setting a global variable to it).  Now, even if you keep a strong reference to the will, its action procedure *won't* execute when the object becomes weakly reachable again.<br>
<br>> (define o (cons 'o 'o))                                    <br>> (define w (make-will o (lambda (x) (println "saving o") (set! o x))))<br>> (set! o #f)<br>> (##gc)<br>saving o<br>> (set! o #f)<br>
> (##gc)<br>> w<br>#<will #3><br><br></div></div>