[CLOSED]<div><font face="courier new, monospace">Simulated the same using a small python script, where client process was blocked on select. On crashing the server, the Input bit mask of the select got triggered (Which I didnt know :) ), now on recv if data read = 0, then I know that the connection was closed and call the respective handler.</font></div>
<div><font face="courier new, monospace"><br clear="all"></font>-Arun<br>
<br><br><div class="gmail_quote">On Sun, Oct 28, 2012 at 12:48 PM, Arun Muralidharan <span dir="ltr"><<a href="mailto:arun11299@gmail.com" target="_blank">arun11299@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<font face="courier new, monospace">Hello Folks,</font><div><font face="courier new, monospace">This might be a simple question, but I would like to know how erlang gen_server gets the async message "tcp_close" when the server to which the gen_server has made connections to has crashed. (Ofcourse I am talking about non blocking sockets here)</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">From what I know (after googling too) is that it takes atleast one send on the connection to get to know if the connection has been reset, in which we case we get the error ECONNRESET.</font></div>

<div><br></div><div><font face="courier new, monospace">But in case of my gen_server, it got the message "tcp_close" as soon as I brought down the server (kill -9) (Note that gen_server was not sending any data to the server).</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Can anybody shed some light on it ?</font></div><div><br></div><div><br clear="all">Thanks.
</div>
</blockquote></div><br></div>