POV-Ray : Newsgroups : povray.off-topic : go! : Re: go! Server Time
5 Sep 2024 03:21:47 EDT (-0400)
  Re: go!  
From: Orchid XP v8
Date: 12 Nov 2009 11:47:26
Message: <4afc3c1e$1@news.povray.org>
>> 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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.