Iterating over thread local storage variables
    Anonymouse via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Fri Mar 11 09:03:38 PST 2016
    
    
  
On Friday, 11 March 2016 at 15:21:38 UTC, maik klein wrote:
>     static Singleton!T get()
>     {
>         if (!instantiated_)
>             {
>             synchronized(Singleton!T.classinfo){
>                 if (!instance_){
>                     instance_ = new Singleton!T();
>                 }
>                 instantiated_ = true;
>                 instance_.tls.insertBack(&instance_.value);
As a drive-by comment, mind that there is a race there. 
_instantiated may have been set after the if statement but before 
the synchronized block. You have to test it again inside.
    
    
More information about the Digitalmars-d-learn
mailing list