]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix crash causing deadlock in connection writer when no messages have been posted yet
authorMatt Joiner <anacrolix@gmail.com>
Mon, 27 Jun 2016 05:45:15 +0000 (15:45 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 27 Jun 2016 05:45:15 +0000 (15:45 +1000)
connection.go

index 366adbe4c8abdcea2100a64d30ccf84983593d87..3f0c4756d1986e7a5ab0a7ac7bc24c0dfa382d61 100644 (file)
@@ -408,7 +408,7 @@ func (cn *connection) writer(keepAliveTimeout time.Duration) {
        keepAliveTimer := time.NewTimer(keepAliveTimeout)
        for {
                cn.mu().Lock()
-               for cn.outgoingUnbufferedMessages.Len() != 0 {
+               for cn.outgoingUnbufferedMessages != nil && cn.outgoingUnbufferedMessages.Len() != 0 {
                        msg := cn.outgoingUnbufferedMessages.Remove(cn.outgoingUnbufferedMessages.Front()).(pp.Message)
                        cn.mu().Unlock()
                        b, err := msg.MarshalBinary()