loop exit question

Steve Langstaff <>
Thu Apr 19 14:21:57 CEST 2001


On 19 April 2001 13:11, Klacke [SMTP:] wrote:
> On Thu, Apr 19, 2001 at 02:02:43PM +0200, Willem Broekema wrote:
> > If a function should loop forever while remembering some
> > state, most examples I have seen use:
> > 
> > loop(State) ->
> >    receive
> >        stop ->
> >            stopped_upon_request;
> >        Other ->
> >            ...,
> >            loop(State)
> >    end.
> > 
> > Now, if the State is not changed in any of the 'reveiced'
> > branches, is there a reason not to move the final 'loop()'
> > command to the end, and use 'exit()' for breaking out of
> > the loop, like in the following?
> > 
> > loop2(State) ->
> >    receive
> >        stop ->
> >            exit(self(), stopped_upon_request);
> >        Other ->
> >            ...
> >    end,
> >    loop(State).
> > 
> > 
> 
> 
> No, that's the way to do it.

Doesn't the action of exit change, depending on whether the process
is trapping exits?

A light perusal of "Concurrent Programming in ERLANG"
seems to suggest that exit will/may cause a process to terminate, whereas
one might just want to drop out of a loop. Or have I misunderstood the
original question?


--
Steve L.





More information about the erlang-questions mailing list