2006/6/18, Daniel Berlin <[EMAIL PROTECTED]>:
Are you trying to do incremental marking?
If the root set changes in the middle of an incremental mark and it's
still got things from the old root set to mark, i bet it blows up, :)

I thought I was safe with disabled incremental collection.
Additionally http://gcc.gnu.org/ml/java/2005-12/msg00059.html and
other messages I was able to find mention incremental marking only in
context of of incremental collection, leaving me to guess that it is
not a part of full collection. Moreover I have GC disabled most of the
time (enabling just for ggc_collect()), that might disable marking at
allocation if it existed (a guess, I know...)

All in all, I'm not sure incremental marking is at fault here.

I think I will try to narrow a problem by non freeing, but clearing
old hash table on increase. This way root set will only grow, but the
set of marked objects should remain the same. If it still crashes,
then somehow adding roots is at fault - but I'm not sure how to
continue after that.

Oh, and accidentally I have found
http://gcc.gnu.org/ml/gcc/2002-08/msg00837.html - a previous Boehm's
GC investigation results, which I was looking for earlier. It seems
I'm taking a different approach, at least my ggc_collect() collects
instead of being no-op.
--
Laurynas

Reply via email to