[kaffe] Threads & Boehm GC
Guilhem Lavaux
guilhem at kaffe.org
Sat Jul 24 03:53:53 PDT 2004
Helmer Krämer wrote:
>On Sat, 24 Jul 2004 11:59:40 +0200
>Guilhem Lavaux <guilhem at kaffe.org> wrote:
>
>
>
>>Helmer Krämer wrote:
>>
>>
>>
>>>On Sat, 24 Jul 2004 09:38:08 +0200
>>>Guilhem Lavaux <guilhem at kaffe.org> wrote:
>>>
>>>Hi,
>>>
>>>
>>>
>>>
>>>
>>>>It seems that the Boehm-GC needs to catch a number of pthread calls.
>>>>This is not evident to implement in kaffe but I think I can do the
>>>>following:
>>>>[...]
>>>>Any comments ?
>>>>
>>>>
>>>>
>>>>
>>>why does the gc_pthread_redirects.h thing from boehm not
>>>work? I mean if kaffevm/gc.h included a header file called
>>>"gc-impl.h" from kaffevm/kaffe-gc or kaffevm/boehm-gc and
>>>unix-pthreads/thread-impl.c included kaffevm/gc.h (and thus
>>>boehm-gc/gc-impl.h), it should work, shouldn't it?
>>>
>>>
>>>
>>>
>>>
>>Yes, but I'd like not to have to include any boehm specific includes in
>>pthreads.
>>If I do this, the unix-pthreads will be stuck with the boehm-gc once it
>>is compiled.
>>
>>If we want to have a '-Xkaffe-gc' to switch to the standard GC we may
>>not be able to do so if we chose this way.
>>
>>
>
>Note that there will be a lot more problems if we wanted to implement
>such an option. For example, if you wanted to be able to switch between
>an incremental and a conservative GC you would have to modify the vm
>itself so it properly tells the gc whenever a pointer is written (or
>accept a huge overhead). Therefore, I'd rather select boehm or kaffe
>at compile time and have -X options only for options specific to the
>selected implementation. Just because it will be easier. Why would one
>have to switch between kaffe and boehm at runtime, anyways?
>
>
>
I see your point. We may select your option for the moment. But I'd
prefer to keep the inclusion to boehm's gc.h only in thread-impl.c to
prevent the VM from being polluted by other symbols.
BTW, I've noticed recently that the VM is not for the moment capable of
handling incremental GC. As the symbol KGC_WRITE has been left
undefined. I may try to merge some things from JanosVM about it (as it
supports incremental GC) afterwards.
Cheers,
Guilhem.
More information about the kaffe
mailing list