[kaffe] Triggering GC(thread assertion error)

Dalibor Topic robilad at kaffe.org
Mon Aug 23 09:15:11 PDT 2004


sita wrote:
> Hi,
>  
>   I was trying to trigger GC(garbage collection) in kaffe. As a part of this I added these lines in gc-mem.c
> (/home/sita/kaffe-1.0.7/kaffe/kaffevm/mem/gc-mem.c)
>  
> size_t count;(global variable) /*added by sita*/
>  
> gc_heap_malloc(size_t sz)
> {
>  
> /*added by sita*/
>  
> count = count + sz;
>  if (count>100000) /* this means if the size of the objects created in the heap exceeds>*/
>      goto nospace;/*>100000, I want to call Garbage collector and free some of them*/
>  
> }
>  
> gc_heap_free()
> {
> /*added by Sita*/
> printf("I'm triggering GC\n");
>  
> }
>  
> When I do the make install with the above code, it installs fine. But when I run a sample program, after a while I get the following error:
>  
> I'm triggering GC
> I'm triggering GC
> I'm triggering GC
> I'm triggering GC
> 
> Aborted
> kaffe-bin: jthread.c:1204: jthread_enable_stop: Assertion `currentJThread->stopCounter >= 0' failed
> 
> Could anyone please help with the error . Any help with this is highly appreciated.

Hi sita,

If that's all of your code, it seems that after count reaches 100000, a 
call to gc_heap_malloc will always result in jump to nospace. That might 
have side effects that you didn't expect ;)

If that doesn't help, check out FAQ.debugging for a short intoduction 
into debugging kaffe.

on a side note, you may want to give 1.1.4 a try, since it has seen a 
fair deal of gc updates compared to 1.0.7.

cheers,
dalibor topic



More information about the kaffe mailing list