Regarding nothrow and @safe
Nick Sabalausky
a at a.a
Thu Aug 25 11:38:36 PDT 2011
"Jacob Carlborg" <doob at me.com> wrote in message
news:j2qn7n$1db7$1 at 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.
More information about the Digitalmars-d-learn
mailing list