Error handling

This commit is contained in:
Jakob Borg
2013-12-18 18:29:15 +01:00
parent 251b109d14
commit f774b0a5dc
3 changed files with 27 additions and 8 deletions

View File

@@ -188,6 +188,9 @@ func (c *Connection) readerLoop() {
case messageTypeRequest:
c.processRequest(hdr.msgID)
if c.mreader.err != nil || c.mwriter.err != nil {
c.close()
}
case messageTypeResponse:
data := c.mreader.readResponse()
@@ -214,6 +217,9 @@ func (c *Connection) readerLoop() {
c.mwriter.writeUint32(encodeHeader(header{0, hdr.msgID, messageTypePong}))
c.flush()
c.wLock.Unlock()
if c.mwriter.err != nil {
c.close()
}
case messageTypePong:
c.wLock.RLock()