[erlang-questions] Semaphores

Robert Virding <>
Thu Mar 15 23:28:35 CET 2007


Just some trivia. In the original Erlang book (not Joe's new one) there 
was a program example of an implementation of semaphores using message 
passing. The example was removed because it did not seem very useful to 
implement a basic feature using a more general one.

I don't think you actually need to receive and keep a list of 'P' 
processes. It should work if you just don't receive them until the 
process which has the semaphore releases it, does a 'V'. Then receive 
the next 'P' and wait until it releases the semaphore.

By adding processes to the list the way you do it, prepending them, 
means that they will be processed in the reverse order to which they 
seize the semaphore. This doesn't seem fair.

Robert

Danesh Daroui wrote:
> Hi all,
> 
> I have seen (even posts in this mailing list) that there is a need to 
> have Semaphores in Erlang and since Erlang offers concurrency, 
> Semaphores can be useful in data sharing. I have implemented a method 
> which enhances Erlang to support Semaphores. I am not sure if someone 
> else has done something like this before, but anyway, this is my 
> version. :)
> 
> I would be glad to have your feedbacks.
> 
> Cheers,
> 
> Danesh
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list