"Jacob Carlborg" <d...@me.com> wrote in message news:j2qn7n$1db7$1...@digitalmars.com... > On 2011-08-21 02:26, Jonathan M Davis wrote: >> >> The short answer: You don't. It's an incredibly bad idea. >> >> The long answer: You catch Error - or OutOfMemoryError if you want that >> specific one. So, you could try and catch it and handle it, but most of >> the >> cleanup during the unwinding of the stack gets skipped. scope statements >> and >> destructors don't get called. Your program is not likely to be in state >> where >> it makes any real sense to try and continue. You _can_ do it, but it's a >> bad >> idea. >> >> - Jonathan M Davis > > What about if you have an application doing heavy image/video processing, > the application could empty some caches or similar. The application could > still work, just not as fast as with caches. >
I remember some discussion awhile back about having some sort of scheme in the GC where you could tell the GC "Hey, in low-memory situations, instead of bailing out with an Error, call this delegate I'm giving you and I'll try to clear out my caches to free up some memory." Unfortunately, I don't think anything's actually come out of that so far. I really hope it does though, it's a great idea.