GC conservatism -- again

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Dec 30 11:41:16 PST 2010


On 12/30/10 12:38 PM, Sean Kelly wrote:
> Andrei Alexandrescu Wrote:
>
>> On 12/30/10 11:19 AM, Sean Kelly wrote:
>>> Adam Ruppe Wrote:
>>>
>>>> On 12/27/10, Steven Schveighoffer<schveiguy at yahoo.com>   wrote:
>>>>> What about tools to make deallocation easier?  For example, we have
>>>>> scope(exit) that you could potentially use to ensure a memory block is
>>>>> deallocated on exit from a scope, what about a thread exit?
>>>>
>>>> It seems to me that the simplest thing might simply be a list of delegates stored
>>>> with the thread:
>>>>
>>>> thread.onexit ~= { free(whatever); };
>>>
>>> Already possible via static dtors.
>>
>> Not dynamically...
>
> void*[] toFree;
>
> static ~this() {
>      foreach(e; toFree)
>          free(e);
> }
>
> What am I missing?

I'm thinking of an API that allows people to dynamically add "to do" 
stuff, a la C's atexit(). Yours above is dynamic (because client code 
can append to toFree) but is hand-written by the client.

Andrei


More information about the Digitalmars-d mailing list