[erlang-questions] Semaphores

Corrado Santoro <>
Thu Mar 15 15:27:49 CET 2007

Danesh Daroui wrote:
> Its cool. I am interested to find out more about your solution. 
Maybe at the next EUC ;-)

> It seems 
> that you have solved the problem using State Machines, but if you use a 
> server to pass messages through it, it might be the reason that message 
> passing is not fast enough as you expect. However, you said that the 
> problem is solved, but defining a channel which is accessible by all 
> processes to send their request (asynchronous or synchronous doesn't 
> matter but synchronous needs its own simulation in Erlang) to one or 
> more than one processes which handle requests. Each sender can also have 
> its private channel to get the result. Anyway, I thought sending 
> messages between processes (not in a distributes architecture) is fast 
> enough to avoid such problems. Your task must be very critical. ;)
They are not so critical, but an unexpected latency could cause e.g. a 
wrong navigation. For example, one task is to make the robot rotate of a 
given angle: we turn on the motors and then we "poll" reading the 
current orientation. This is made by means a couple of communicating 
processes (one for interacting with the motor controller and another to 
perform rotation control): if the latencies are too high, the robot 
could overcome the target and stop with a wrong orientation.

In our current implementation, there are no unexpected latencies. But, 
we experienced these problems when we used OTP behaviours (gen_fsm, 
etc.). Please note that the robot is quite fast, so milliseconds are 

In any case, if we have time, we'll make some measurement in order to 
give some numerical quantities!


Eng. Corrado Santoro, Ph.D.
University of Catania - ITALY - Engineering Faculty

Tel: +39 095 7382380        VoIP: sip:

Personal Home Page: http://www.diit.unict.it/users/csanto
     NUXI Home Page: http://nuxi.diit.unict.it

More information about the erlang-questions mailing list