Andrei Alexandrescu Wrote: > 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<[email protected]> 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.
Hand written but trivial. It would be easy enough to add the feature to core.runtime or core.thread though.
