Shared keyword and the GC?

sclytrack sclytrack at answermyself.com
Fri Oct 19 04:39:56 PDT 2012


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;
}


More information about the Digitalmars-d mailing list