(spawn_monitor/3)

Sean Hinde <>
Mon Sep 1 14:53:36 CEST 2003


On Monday, September 1, 2003, at 01:40  pm, Ulf Wiger (ÄL2/EAB) wrote:

>
> I think one reason why this BIF hasn't been added is that
> you will get a DOWN message anyway, since calling
> erlang:monitor/2 on a non-existing process will do just that.

OK, I didn't cotton on to that twist.

>
> What do you gain, apart from one line of code, by making
> it atomic? Granted, in the distributed case, you save some
> network traffic.

Well, you gain consistency with the spawn link case. It feels wrong to 
have the two mechanisms  for monitoring other processes have such 
different meanings and operation. Apart from anything else it would 
probably never have occurred to me (having been brought up on the 
religion that spawn should never be used and that spawn_link is the 
only way to make link atomic) that

Pid = spawn(Fun),
monitor(process, Pid)

is correct, and the only way to achieve the aim, but

Pid = spawn(Fun),
link(Pid)

is utterly verboten.

Sean



More information about the erlang-questions mailing list