Unable to set static data member of a class (results in default value 0)

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Aug 27 15:41:10 PDT 2017


On Sunday, August 27, 2017 22:29:46 Adam D. Ruppe via Digitalmars-d-learn 
wrote:
> On Sunday, 27 August 2017 at 22:21:11 UTC, Enjoys Math wrote:
> >    static int dataReadDelay;
>
> That's thread-local. Use shared to make it shared across all
> threads, and/or initialize it in the same thread as the use.
>
>
> See:
> https://dlang.org/migrate-to-shared.html
> https://tour.dlang.org/tour/en/multithreading/thread-local-storage

Yeah, so the thread with main in it should have the value set, but for every
other thread, it would be default-initialized. If you're just looking to set
it that one value for all threads and not change it, I'd suggest that you
just set it directly and make it immutable - or use enum, so it's a manifest
constant. If you want to change it though, you will need to use shared and
deal with protecting it appropriately when accessing it.

- Jonathan M Davis



More information about the Digitalmars-d-learn mailing list