[erlang-questions] gen_server monitoring a process

Bernard Duggan <>
Tue Jul 13 01:12:28 CEST 2010


On 13/07/10 01:10, Filipe David Manana wrote:
> Hi,
>
> Let's say I have a gen_server monitoring a process P1.
> Is it possible that, a gen_server receives first the {'DOWN', ...} message
> (handled by handle_info) before any other message sent from the monitored
> process (through a gen_server:cast or gen_server:call) ?
>    
 From the manual:

"A 'DOWN' message will be sent to the monitoring process if Item dies, 
if Item does not exist, or if the connection is lost to the node which 
Item  resides on."

So, yes, of course you can receive the 'DOWN' message first, if the 
process doesn't exist, dies, or connection to the node is lost before 
the process manages to send anything else.
> If I weren't using a gen_server, than that would depend on the order of my
> receive branches.
>    
Well, yes, but if you're not looking for the DOWN or at least timing out 
your receive, then you may end up waiting forever if the process dies 
before sending the message you're trying to receive.

B


More information about the erlang-questions mailing list