Plan for Exceptions and @nogc?

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 18 10:20:25 PST 2015


On Wednesday, 18 February 2015 at 09:04:38 UTC, Matthias Bentrup 
wrote:
> Windows SEH maintains a per-thread linked list of exception 
> handlers, but the C++ runtime seems to install only one handler 
> at the start of every function and resorts to lookup tables if 
> there are multiply try{}s in the function.
>
> If you want to avoid lookup tables, you can of course 
> add/remove catchers dynamically whenever you enter/leave a try 
> block, that would add a small cost to every try, but avoids the 
> (larger) table lookup cost on the catch.

You want to do this as C++ introduce a ton of implicit finally 
blocks for destructors. If you would setup one everytime you need 
one, you would trash performance in the fast path.


More information about the Digitalmars-d mailing list