On 2018-03-05 18:57:01 +0000, Steven Schveighoffer said:

On 3/5/18 1:35 PM, Robert M. Münch wrote:

1. Are myMemb1..N TLS or __gshared as well?

No, they are on the heap. Only the reference is __gshared. But effectively it is __gshared, since you can reach those items via the global `myObj`.

Ok, that was my idea. And am I right, that I don't need any special syntax, just: myObj.myMemb


2. How to best implement a simple global to keep track of values (with support for threads)?

Shared is the best mechanism, and you don't have to make it a class, it can be a struct. This is only if you are using it as POD (plain old data).

Ok, in my case I have some methods as well (but maybe can be avoided).

If you want to have methods, shared kind of sucks. But this at least tells the type system that it's shared between threads.

Why does it suck?

__gshared does not, it just sticks it in global space, but pretends it's not shared data.

Ok, so this is the really hackish solution...

--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

Reply via email to