I wrote this code. My purpose is to see how shared works in D. I create a global variable (globalVar) and access it in two different threads and it prints fine, although it is not shared. So, can you please tell, what difference it makes to use/not-use shared (ref. http://www.informit.com/articles/article.aspx?p=1609144&seqNum=3).

Also, is a global const implicitly shared?


#!/usr/bin/env rdmd

import std.stdio;
import std.concurrency;
import core.thread;

const int globalConst = 51;
int globalVar = 17;
void main() {

  writefln("Calling Function");
    spawn(&test1, thisTid);
    writefln("Wait Here ");
    spawn(&test2, thisTid);
    writefln("End Here ");
}

void test1(Tid owner)
{
  writefln("The value of globalConst here is %s", globalConst);
  writefln("The value of globalVar here is %s", globalVar);
}

void test2(Tid owner)
{
  writefln("The value of globalConst here is %s", globalConst);
  writefln("The value of globalVar here is %s", globalVar);
}

Reply via email to