On 7/10/2014 8:13 AM, Sean Kelly wrote:
On Thursday, 10 July 2014 at 06:32:32 UTC, logicchains wrote:
On Thursday, 10 July 2014 at 05:58:56 UTC, Andrei Alexandrescu wrote:
We already have actor-style via std.concurrency. We also have fork-join
parallelism via std.parallel. What we need is a library for CSP.
The actor-style via std.concurrency is only between 'heavyweight' threads
though, no? Even if lightweight threads may be overhyped, part of the appeal
of Go and Erlang is that one can spawn tens of thousands of threads and it
'just works'. It allows the server model of 'one green thread/actor per
client', which has a certain appeal in its simplicity. Akka similarly uses its
own lightweight threads, not heavyweight JVM threads.
No. I've had an outstanding pull request to fix this for quite a while now. I
think there's a decent chance it will be in the next release. To be fair, that
pull request mostly provides the infrastructure for changing how concurrency is
handled. A fiber-based scheduler backed by a thread pool doesn't exist yet,
though it shouldn't be hard to write (the big missing piece is having a dynamic
thread pool). I was going to try and knock one out while on the airplane in a
few days.
Sean, it is awesome that you are taking charge of this. I can't think of anyone
more perfect for the job!