On Sunday, 17 August 2025 at 21:00:32 UTC, solidstate1991 wrote:
> I created a nogc array handler struct, and I would like to use it as a shared array.
I can only easily find anything related to it for simple built-in types, let alone for slices. If at least I could use slices directly, it would be a great help (lock write access in a synchronized
scope, then only read from the slice).
Your question is not very clear.
You cannot find anything related to what? To using shared
?
You also didn't clarify what you mean by 'use it as a shared array'. Do you mean you want to make an instance of your struct shared
? You can do that by casting it to shared
and away from shared
(as long as you manually ensure thread safety with mutexes, or simply pass it to a different thread and discard the original):
struct S{}
shared S s;
void main(){
S sLocal;
s = cast(shared)sLocal;
}
If you're asking how you can make your implementation shared
, that's much more complicated and I wouldn't recommend it unless you know what you're getting into. shared
functions are rarely implemented outside of things like synchronisation primitives (e.g. mutexes).