GC (was: kaffe-0.8.x garbage collection problem (at least on m68k))

Frank Mehnert Frank.Mehnert at mchp.siemens.de
Wed Mar 12 04:09:20 PST 1997

On Mon, 3 Mar 1997, Tim Wilkinson wrote:

> There are already GC related fixes a foot and I'll try to address this in
> them.  I still worry about integrating the GC with native threads (e.g. how
> does one obtain the current thread register set) when I come to abstract this.

GC under Chorus with native threads works (single processor). There is a
function threadStat which gives the StackBase and StackSize for each
running thread. Before the GC walks over the threadstack list, I let
update threadstack objects (by calling threadStat) so they get the right
values for objs->base and obj->size.
With single processor the GC and finaliser get the highest priority and
so can't be interrupted by other kaffe threads. Because this I also don't

BTW: Tim, do you have think about reference counters (a counter in each
object says how much other objects point to it - if this counter becomes
Zero the GC can kill the object. Like hard links in UNIX)? With this
kaffe wouldn't have to scan through the stacks. The only problem would be
cyclic lists. But they are not to often in Java?


Frank Mehnert
email: Frank.Mehnert at mchp.siemens.de

More information about the kaffe mailing list