%% Taken from
%%   http://www.builderau.com.au/program/soa/Synchronous-message-passing-in-Erlang/0,339024614,339281535,00.htm

-module(prodcon).
-export([start/0, consumer/0, producer/3]).

producer(_, _, 0) -> true;
producer(Me, Server, N) ->
	Server ! {Me, N},
	producer(Me, Server, N-1).

consumer() ->
	receive
		{Them, N} -> 
			io:format("~s ~w~n", [Them, N]),
			consumer()
	end.

start() ->
	Server = spawn(prodcon, consumer, []),
	spawn(prodcon, producer, ['A', Server, 10]),
	spawn(prodcon, producer, ['B', Server, 5]),
	io:format("finished start~n", []).

