Fine grained locking

This commit is contained in:
Jakob Borg committed 2014-01-20 07:38:48 +01:00
1 parent fff50b5472
commit 4ac204b604
5 files changed
+213 -117

No files matched your search

+4 -3
View File
@@ -341,14 +341,15 @@ func (c *Connection) processRequest(msgID int, req request) {
c.Lock()
c.mwriter.writeUint32(encodeHeader(header{0, msgID, messageTypeResponse}))
c.mwriter.writeResponse(data)
err := c.flush()
err := c.mwriter.err
if err == nil {
err = c.flush()
}
c.Unlock()
buffers.Put(data)
if err != nil {
c.close(err)
} else if c.mwriter.err != nil {
c.close(c.mwriter.err)
}
}