On Friday, 19 October 2012 at 09:07:55 UTC, sclytrack wrote:
How does it deal with the problem where a pointer in TLS
points to global data,
Need to run stop-the-world for shared heap. But it would be
interesting to have blocks that have no shared pointers in them.
or worse yet, a pointer in the global heap points to TLS?
Could you give an example?
import std.stdio;
class Local
{
}
class Global
{
Local data;
int [] arr;
}
Local l2;
int [] arr; //tls
int main()
{
shared Global g = new shared(Global); //global heap
Local l1 = new Local(); //future local heap
// g.data = l1; //disallowed
l2 = new Local();
// g.data = l2; //disallowed
arr = new int[10]; //future local heap
g.arr = cast(shared(int[])) arr; //bypassed.
writeln("Complete");
return 0;
}