Concurrency message passing

Steven Schveighoffer schveiguy at gmail.com
Tue Aug 17 22:02:27 UTC 2021


On 8/17/21 2:36 PM, JG wrote:
> Thanks for the suggestions and explanations. I am not sure what to do in 
> my case though. The situation is as follows. I have a struct that is 
> populated via user input not necessarily at single instance (so that 
> seems to rule out immutable). On the other
> hand while it is being populate it is only accessible from one thread so 
> that
> makes using shared messy. After being populated it should be passed to 
> the other thread and no references are kept.

You are allowed to cast to immutable if no other mutable references are 
used. I recommend using `assumeUnique`.

> What I am doing currently is populating the struct and casting to shared 
> when I push into a synchronized queue (no references to its data are 
> kept in the first thread). Is what I am doing wrong and can it be 
> achieved using message passing?

Yeah, build it like Ali says, and then cast in order to pass it.

-Steve


More information about the Digitalmars-d-learn mailing list