private void threadSpinCore() { TcpClient newsock = null; ErlConnection conn; m_Node.OnNodeStatusChange(m_Node.NodeName, true, null); while (m_Active) { conn = null; try { newsock = m_Sock.AcceptTcpClient(); } catch (System.Exception e) { m_Node.OnNodeStatusChange(m_Node.NodeName, false, e); break; } try { conn = new ErlConnection(m_Node, newsock); m_Node.Add(conn); } catch (ErlAuthException e) { m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e); closeSock(newsock); } catch (ErlException e) { m_Node.OnConnectAttempt(conn != null ? conn.Name : ErlAtom.Null, Direction.Inbound, e); closeSock(newsock); } catch (Exception e) { closeSock(newsock); closeSock(m_Sock); m_Node.OnNodeStatusChange(m_Node.NodeName, false, e); break; } } App.Log.Write(Log.MessageType.Info, StringConsts.ERL_STOPPING_SERVER.Args(m_Node.NodeLongName, "Listener")); stop(); m_Thread = null; }