Threads & Message Passing - Best practices ?

Adam D. Ruppe via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 13 07:31:04 PDT 2017


On Monday, 11 September 2017 at 09:56:01 UTC, Jonas Mminnberg
> 1. receive() pattern matching -- what is common here, always 
> send (int, someData) where int is a value you compare to. Or 
> create dummy types that you can match on directly?

I would always create a new type and have it hold the data.

struct SomeCommand {
   int[] data;
}

> 2. What is the reason you can't decide which thread(s) to 
> receive() from and is there any way around it?

idk the reason but if you are just receiving your custom types 
you shouldn't have to worry about other stuff.

> 3. Is there a recommended way to deal with creating immutable 
> data ? Right now I just cast to immutable before returning the 
> data since I know I have the only reference, but it would be 
> nice to have something like a `UniqueReference` containing a 
> immutableMove() method...

There is http://dpldocs.info/assumeUnique which does the cast for 
you but I don't think it can move at all.

You can also create it in a pure function and write to an 
immutable variable when you initialize it.


More information about the Digitalmars-d mailing list