|
![](/i/fill.gif) |
>> I must admit, I'm not sure what this even means. Might be interesting
>> though.
>
> CSP. A bunch of actors running around exchanging messages
> asynchronously, each process being a single thread in its own address
> space. Like Erlang or any of the other dozens of languages designed for
> real-time distributed processing.
So you mean each thread waits for messages to arrive, processes them,
maybe sends some other messages, and then waits for the next message?
> That the channel itself is a first class object makes for the ability to
> do cool stuff like passing the channel to a new version of the program
> running on a different computer, so you don't lose any outstanding
> messages. Assuming they really mean "first class" there.
Mmm... In C, an integer is a "first class" thing, but that doesn't mean
you can send it over a network connection, for example. They might mean
that these channels only work inside a single running instance of a
single program.
>> Lots of languages have light-weight threads, no?
>
> Many have lightweight threads that also occupy multiple processors.
> I.e., most languages where you can launch 10,000 threads launch them in
> one process and fake it 100%.
Oh, OK. I assumed they all do what Haskell does - you call forkIO and it
creates a thread. You specify CLI options to say how many *real* threads
to use.
[It's mildly irritating that to change the number of real threads, you
must stop and restart your program - and also you can only control this
from the CLI args...]
> I'll have to see what kind of introspection they support and what kind
> of dynamic loading.
Ah, dynamic loading is fun.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |