Silly Qn': Process exits at spawn

Peter Lund peter@REDACTED
Mon Oct 13 18:59:48 CEST 2003


You spawn trying to call neural:registry_loop/0 (without params),
but you have only defined a .../1 that takes one param. That explains
the crash...

> Hi,
>
> What's wrong with this module?  I've not played with erlang in ages and
>  even then only for a few days.  The problem seems to be that the
> registered process exists at spawn or very quickly but I don't
> understand why.  Can someone please tell me what is wrong?
>
>
> -module(neural).
> -export([create_registry/0,
> 	 stop_registry/0,
> 	 registry_loop/1,
> 	 add_neuron/1,
> 	 registered_neurons/0]).
>
> create_registry () ->
>     Pid = spawn (neural, registry_loop, []),
>     register (neural_registry, Pid).
>
>
> stop_registry () ->
>     neural_registry ! stop.
>
>
> add_neuron (Name) ->
>     neural_registry ! {self(), add, Name}.
>
>
> registered_neurons () ->
>     neural_registry ! {self(), reg_neurons},
>     receive
> 	{Registry, Vals} ->
> 	    Vals
>     end.
>
> registry_loop(Val) ->
>     receive
> 	{From, add, Name} ->
> 	    registry_loop (lists:append (Val, Name));
> 	stop ->
> 	    true;
> 	Other ->
> 	    registry_loop (Val)
>     end.
>
>
> Thanks,
> Chris






More information about the erlang-questions mailing list