Erlang (was: Re: Generics)

Eric Merritt cyberlync at yahoo.com
Mon Nov 10 21:25:33 UTC 2003


> We have preemptive, priority-based threading.
> Processes will run until they're 
> blocked (waiting for a semaphore), explicitly yield,
> or terminate. However, 
> they may be preempted by a higher-priority Process
> that has become ready to 
> run.
> So we can easily force time-slicing between
> Processes at the same priority, by 
> having them periodically preempted by a
> higher-priority Process. So (unlike 
> in a straight cooperative model) one Process can't
> keep others at the same 
> priority from being able to run.

 I guess this would imply some external meta-process
to modify the priorities of the watched processes? I
wonder how much overhead this would create.
 
> > As regards cheap, from what I understand squeak
> has no
> > problem with tens of thousands of concurrent
> > processes. However, if we are comparing cheapness
> with
> > erlang it would have to run nicely with hundreds
> of
> > thousands of concurrent processes.
> 
> Don't know how well this would work, but it should
> work fairly well. Andreas 
> may have tried it.

 Its easy enought to try I guess. I might have to
throw together a little test.
 
 
> We don't block the VM, or at least we don't have to.
> 
> We have async file and network support; a Process
> needing to do I/O to a 
> resource that isn't ready can be blocked until that
> resource is ready without 
> stopping other Processes.

 I guess what I am saying is that in erlang and
mozart-oz for that matter. There is no special async
code (at least from the programmer prospective), all
io code is async by default. 
 

__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree



More information about the Squeak-dev mailing list