[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] catch exceptions in finalizers, remove dyn

From: John Cowan
Subject: Re: [Chicken-hackers] [PATCH] catch exceptions in finalizers, remove dynamic resizing of finalizer vector
Date: Tue, 19 Jun 2012 15:12:30 -0400
User-agent: Mutt/1.5.20 (2009-06-14)

Peter Bex scripsit:

> The GC needs to be able to associate an object with its finalizers, so
> there either needs to be a global list or some extra slot added to
> each object.  The latter takes up more memory when you don't have a lot
> of finalizers (and finalizers are slow, so it's best not to generate too
> many of them).

How about if finalizers are only attached to pointers?  That seems to
be the principal use case, and adding a slot to a pointer (maybe only a
"finalizable tagged pointer" wouldn't be so expensive.

> What I don't quite understand is all this talk about threads.  The test
> program doesn't even create any extra threads, so how could there be any
> race conditions?  There shouldn't *be* any concurrency in this case,
> should there?

Even without the scheduler, the collector and the mutator are effectivevly
separate threads, because garbage collection happens unpredictably from
the point of view of the primordial thread.

A: "Spiro conjectures Ex-Lax."                  John Cowan
Q: "What does Pat Nixon frost her cakes with?"  address@hidden
  --"Jeopardy" for generative semanticists

reply via email to

[Prev in Thread] Current Thread [Next in Thread]