[gambit-list] Wills from beyond.
Estevo
euccastro at gmail.com
Mon Dec 23 12:51:04 EST 2013
> Yes. So to be clearer, Gambit’s runtime system keeps a weak reference
> to each will created with make-will. The weak reference is severed when
> the will’s action procedure is executed, making the will unreachable.
This
> allows the will object itself to be reclaimed after the action procedure
is
> executed.
Clearer indeed!
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.
> (define o (cons 'o 'o))
> (define w (make-will o (lambda (x) (println "saving o") (set! o x))))
> (set! o #f)
> (##gc)
saving o
> (set! o #f)
> (##gc)
> w
#<will #3>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20131223/e853858d/attachment.htm>
More information about the Gambit-list
mailing list