Thought on limiting scope of GC

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Feb 13 22:11:16 PST 2014


On 2/13/14, 8:41 PM, Jerry wrote:
> Hi all,
>
> I just had the following thought on limiting the gc in regions.  I don't
> know if this would address some of Manu's concerns, but here goes:
>
> My thought is to have something like the following:
>
> GC.track();
> auto obj = allocateStuff();
> GC.cleanup(obj);
>
> The idea here is that track() tells GC to explicitly track all objects
> created from that point until the cleanup call.  The cleanup() call
> tells gc to limit its collection to those objects allocated since the
> track() call.  The obj parameter tells gc to consider obj live.
>
> This way, you can avoid tracking everything that may get created, but
> you can limit how much work gets done.
>
> Comments? Slams?
>
> Jerry

Yah, it's a classic (with the manes "track" -> "mark" and "cleanup" -> 
"sweep"). Allocators support that already, and installing a global GC 
should do as well.

Andrei




More information about the Digitalmars-d mailing list