On Friday, 2 November 2012 at 11:27:22 UTC, Sönke Ludwig wrote:
Am 01.11.2012 19:53, schrieb Rob T:

I would like to have/add std.concurrency style message passing on top though, as that sometimes is actually quite convenient and of course it's also a very safe way to handle communication between fibers that
are running on different threads - provided that only
immutable/shared/unique data is sent, of course.

Thanks for the input!

A huge advantage of the message passing concept is that it can scale up easily to include threads (I suppose fibres too), as well as independent processes on same machine, and to multiple machines across a network.

AFIK you simply cannot get that kind of scaling without message passing.

At this time the std.concurrency module only supports messaging across threads, so this part will need some work. I have enough C++ experience with messaging across nodes, so I'm at least not starting from scratch.

What I don't know yet, is if I should implement concurrency entirely through message passing, or to include co-routines for the execution part. If I do not use co-routines, then the execution units have to be broken up into parts, following the usual event processing model.

I can manage breaking up code into parts well enough, and there may actually be advantages to doing it that way, but I can also see advantages with using co-routines. I'll have to perform tests to see how it will all fit together, but this will take me a while.

--rt

Reply via email to