Hi all,
While I must start this post out by saying that I've never implemented
either STM or a garbage collector, during a discussion on #parrot (is
that channel logged?), a similarity between the two processes occurred
to me.
Would this be an adequate expression of a generational Garbage
Collector, in terms of STM;
1. start transaction for a memory region / "incubator"
2. gather a set of objects for "update" (giving you a "consistent
read" copy of them).
3. commit memory transaction. The consistent read copy becomes the
master, and the old incubator is reaped.
There is the gaping gap in the above about how you know which objects to
gather, of course.
I'm just thinking it would be "nice" if the implementation for these two
advanced technologies could share the same basic memory transaction
API, to get two elusive birds with one stone.
Sam.