Is synchronized(...){...} doomed to never be nothrow/@nogc?

Sönke Ludwig via Digitalmars-d digitalmars-d at puremagic.com
Tue May 10 22:53:47 PDT 2016


Am 11.05.2016 um 03:08 schrieb Walter Bright:
> Why does vibe.d throw?
>
> Also, any throwing code can be converted to nothrow with:
>
>     try
>     {
>      ...throwing code...
>     }
>     catch (Exception e)
>     {
>      ...
>     }

There are two kinds of fiber-aware mutexes in vibe.d, one that doesn't 
throw (created when this issue first came up) and the original one that 
can be interrupted from a different task using `Task.interrupt()`. In 
case of interruption it will throw an InterruptException instead of 
continuing to wait for the lock.


More information about the Digitalmars-d mailing list