DIP60: @nogc attribute
Peter Alexander via Digitalmars-d
digitalmars-d at puremagic.com
Wed Apr 16 13:32:20 PDT 2014
On Wednesday, 16 April 2014 at 20:29:17 UTC, bearophile wrote:
> Peter Alexander:
>
>> (I assume that nothrow isn't meant to be there?)
>
> In D nothrow functions can throw errors.
Of course, ignore me :-)
>> You could do something like this:
>>
>> void foo() @nogc
>> {
>> static err = new Error();
>> if (badthing)
>> {
>> err.setError("badthing happened");
>> throw err;
>> }
>> }
>
> To be mutable err also needs to be __gshared.
But then it isn't thread safe. Two threads trying to set and
throw the same Error is a recipe for disaster.
More information about the Digitalmars-d
mailing list