optimisation: terminate connection actorLoop asap on error
This commit is contained in:
1 parent
c2356ebcde
commit
8846274c42
1 file changed
+13
-12
+13
-12
@@ -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
|
||||
|
||||
Reference in new issue
Block a user