[erlang-questions] Erlang way for process-as-library?
Hakan Mattsson
hakan@REDACTED
Wed Feb 7 10:28:09 CET 2007
On Tue, 6 Feb 2007, Robert Virding wrote:
RV> Torbjorn Tornkvist wrote:
RV> > Either let the users of the library start it with
RV> > a start function or you could let every function
RV> > do it automatically. Example:
RV> >
RV> > start() ->
RV> > case whereis(my_service) of
RV> > Pid when pid(Pid) -> Pid
RV> > _ -> spawn(my_mod, my_server, [])
RV> > end.
RV>
RV> That start function is not safe, especially on an SMP system. You could
RV> get two rocesses running start simultaneously both not finding the
RV> server and both trying to start it.
The start function is safe. Only one of the processes
will succeed in registering the name my_service.
/Håkan
More information about the erlang-questions
mailing list