[Gc] Figured out my problem with finalization cycles. Usefulpatchattached.

Talbot, George Gtalbot at locuspharma.com
Fri Jun 5 09:28:02 PDT 2009

Hi Ivan,

Thanks for continuing to look at the patch.

OK.  I fixed the indentation level.  Also included in the patch is a fix to GC_print_backtrace() that will detect cycles and stop.  I added a recursive function in place of the loop in GC_print_backtrace() which maintains a list of visited objects on the stack and searches at each recursion.  Not that great (O(n^2)) but probably adequate for debugging.

Let me know if this works for you.  If so, would someone be able to commit this?

It's current with CVS as of ~12:20 EST 6/5/2009.

George T. Talbot
gtalbot at locuspharma.com

P.S.  I had one other question:  Can the atomic ops library be exposed when building the collector so that I could use it in my program?

> -----Original Message-----
> From: Ivan Maidanski [mailto:ivmai at mail.ru]
> Sent: Friday, June 05, 2009 10:27 AM
> To: gc at linux.hpl.hp.com
> Cc: Talbot, George
> Subject: Re[2]: [Gc] Figured out my problem with finalization cycles.
> Usefulpatchattached.
> Hi!
> "Talbot, George" <Gtalbot at locuspharma.com> wrote:
> > Hi,
> >
> > Ivan, thanks for looking at the patch.
> >
> > Ok.  This version of the patch fixes the issue identified by Ivan where
> AO_fetch_and_add1() isn't available by reverting to the previous behavior
> on such a platform.
> Small tip for the patch: it's good to inc indentation level inside #if-
> else-endif.
> >
> > What would I need to do to GC_print_backtrace() to have it detect
> pointer cycles while it's printing; note that at the point when
> GC_finalize() is calling it, GC_finalize() appears to be marking to find
> cycles involving finalizeable items.
> IMHO, GC_print_backtrace() should be fixed to prevent infinite printing. I
> think, a nested loop would do (since time doesn't matter here).
> > This patch is current w.r.t. CVS as of ~9:15AM EST 6/5/2009.
> >
> > Thanks.
> >
> > --
> > George T. Talbot
> > <gtalbot at locuspharma.com>
> Bye.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: atomicize_print_callers_reentry.patch
Type: application/octet-stream
Size: 8899 bytes
Desc: atomicize_print_callers_reentry.patch
Url : https://napali.hpl.hp.com/pipermail/gc/attachments/20090605/d7bfe135/atomicize_print_callers_reentry-0001.obj

More information about the Gc mailing list