Merge pull request #731 from dpw/connection-select-break

Fix use of "break" within "select" in LocalConnection actorLoop
This commit is contained in:
Matthias Radestock committed 2015-05-22 15:40:00 +01:00
commit b20b4a8675
1 file changed
+8 -13
+8 -13
View File
@@ -196,13 +196,14 @@ func (conn *LocalConnection) SendProtocolMsg(m ProtocolMsg) {
// Async
func (conn *LocalConnection) Shutdown(err error) {
// err should always be a real error, even if only io.EOF
if err == nil {
panic("nil error")
}
// Run on its own goroutine in case the channel is backed up
go func() {
if err == nil {
conn.sendAction(nil)
} else {
conn.sendAction(func() error { return err })
}
conn.sendAction(func() error { return err })
}()
}
@@ -379,9 +380,6 @@ func (conn *LocalConnection) actorLoop(actionChan <-chan ConnectionAction) (err
for err == nil {
select {
case action := <-actionChan:
if action == nil {
break
}
err = action()
case <-conn.heartbeatTCP.C:
err = conn.sendSimpleProtocolMsg(ProtocolHeartbeat)
@@ -398,13 +396,10 @@ func (conn *LocalConnection) actorLoop(actionChan <-chan ConnectionAction) (err
}
func (conn *LocalConnection) shutdown(err error) {
switch {
case err != nil && conn.remote == nil:
if conn.remote == nil {
log.Printf("->[%s] connection shutting down due to error during handshake: %v\n", conn.remoteTCPAddr, err)
case err != nil:
} else {
conn.Log("connection shutting down due to error:", err)
default:
conn.Log("connection shutting down")
}
if conn.TCPConn != nil {