vibed - best approach to manage central state (cached records)
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Apr 12 03:04:51 PDT 2015
On Saturday, 11 April 2015 at 19:24:22 UTC, Laeeth Isharc wrote:
> Hi.
>
> Two questions:
>
> 1. On startup I load various indexes from file storage into
> memory in the shared static this segment, and I would like to
> access these from threads serving web requests. The data can
> be considered immutable once loaded.
>
> What is the best way to make this data accessible? Obviously
> static doesn't work as the threads have their own storage (I
> think this is what is happening). __gshared works, but is
> there a better approach?
You can declare the cache as `immutable` (which is shared across
threads) and assign to it using `assumeUnique()`. You just need
to make sure the initialization really happens only once, i.e. do
it in `main()` or in `shared static this()` as opposed to `static
this()`.
More information about the Digitalmars-d-learn
mailing list