[erlang-questions] demonitor

Raimo Niskanen <>
Fri Aug 22 14:47:09 CEST 2008


On Fri, Aug 22, 2008 at 01:56:55PM +0200, Claes Wikstrom wrote:
> 
> I just recently discovered some bugs in the ssh application.
> basically it's a code like in gen.erl
> 
>              erlang:demonitor(Mref),
>              receive
>                  {'DOWN', Mref, _, _, _} ->
>                      {ok, Reply}
>              after 0 ->
>                      {ok, Reply}
>              end;
> 

You want
	erlang:demonitor(Mref, [flush])

> 
> 
> The flushing wasn't there in the ssh app, and thus the DOWN messages
> got accumulated and there was a memory leak. (I posted to erlang-patches)
> 
> Anyway, here is my question.
> 
> Don't you _always_ want to do that flushing after demonitor. And if
> so, shouldn't the BIF do that. I bet there is whole lot of code
> out there which doesn't properly do the flush.

In that case _always_ use erlang:demonitor(Mref, [flush]).

We could not change the behaviour of erlang:demonitor/1;
backwards compatibility...

> 
> /klacke
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list