Meyer, OO and concurrency

Ulf Wiger <>
Fri Jul 15 03:40:25 CEST 2005


Den 2005-07-14 21:10:51 skrev todd <>:

> I am blocking on an a semaphore which is an OS construct. Sombody  
> unblocks me through an OS sempahore call. That schedules my task to run,  
> in the OS. The OS runs my task. What's the language have to do with any  
> of that?

Just so we understand each other: at our project we do this
kind of stuff in device processors, using C in OSE Delta.

It could be that we'll eventually take advantage of multi-core
architectures, and move the whole thing up into Erlang,
using simple drivers written in C to control the hardware.

If we can have e.g. 8 CPU cores at 1-2 GHz each, I think
latency is going to be OK for our purposes, and the main
reason to make this move would be that the Erlang-based
stuff is simply so much easier to write and debug.
We're not there yet (partly because the hardware necessary
is not there yet), but it's certainly something we're
considering.

The semaphore programming you describe is also something
we've had experience with, but it's not the way you
do things in OSE Delta. OSE has processes and asynchronous
message passing, similar to Erlang in fact.

For the stuff we do in Erlang, using semaphores is out of
the question, and so is an event-based architecture, since
it would make our state machines much more difficult to
program.

/Uffe





More information about the erlang-questions mailing list