optimisation: terminate connection actorLoop asap on error

This commit is contained in:
Matthias Radestock committed 2015-12-24 14:25:25 +00:00
1 parent c2356ebcde
commit 8846274c42
1 file changed
+13 -12
+13 -12
View File
@@ -360,20 +360,21 @@ func (conn *LocalConnection) actorLoop(actionChan <-chan ConnectionAction, error
for err == nil {
select {
case action := <-actionChan:
err = action()
case err = <-errorChan:
case <-conn.heartbeatTCP.C:
err = conn.sendSimpleProtocolMsg(ProtocolHeartbeat)
case <-fwdEstablishedChan:
conn.established = true
fwdEstablishedChan = nil
conn.Router.Ourself.ConnectionEstablished(conn)
case err = <-fwdErrorChan:
default:
select {
case action := <-actionChan:
err = action()
case <-conn.heartbeatTCP.C:
err = conn.sendSimpleProtocolMsg(ProtocolHeartbeat)
case <-fwdEstablishedChan:
conn.established = true
fwdEstablishedChan = nil
conn.Router.Ourself.ConnectionEstablished(conn)
case err = <-errorChan:
case err = <-fwdErrorChan:
}
}
}
return