Testing some singleton implementations

luka8088 luka8088 at owave.net
Mon Feb 10 04:44:29 PST 2014


On 10.2.2014. 10:54, Andrej Mitrovic wrote:
> On 2/9/14, luka8088 <luka8088 at owave.net> wrote:
>>   private static __gshared typeof(this) instance_;
> 
> Also, "static __gshared" is really meaningless here, it's either
> static (TLS), or globally shared, either way it's not a class
> instance, so you can type __gshared alone here. Otherwise I'm not sure
> what the semantics of a per-class-instance __gshared field would be,
> if that can exist.
> 

"static" does not meat it must be tls, as "static shared" is valid.

I just like to write that it is static and not shared. I know that
__gshared does imply static but this implication is not intuitive to me
so I write it explicitly.

For example, I think that the following code should output 5 and 6 (as
it would it __gshared did not imply static):


module program;

import std.stdio;
import core.thread;

class A {
  __gshared int i;
}

void main () {

  auto a1 = new A();
  auto a2 = new A();

  (new Thread({
    a1.i = 5;
    a2.i = 6;
    (new Thread({
      writeln(a1.i);
      writeln(a2.i);
    })).start();
  })).start();

}


But in any case, this variable is just __gshared.



More information about the Digitalmars-d mailing list