Explorar o código

Fix race between sender and receiver.

Gary Burd %!s(int64=13) %!d(string=hai) anos
pai
achega
b85fd5bc22
Modificáronse 1 ficheiros con 3 adicións e 3 borrados
  1. 3 3
      redis/conn.go

+ 3 - 3
redis/conn.go

@@ -228,15 +228,15 @@ func (c *conn) readReply() (interface{}, error) {
 }
 
 func (c *conn) Send(cmd string, args ...interface{}) error {
+	c.mu.Lock()
+	c.pending += 1
+	c.mu.Unlock()
 	if c.writeTimeout != 0 {
 		c.conn.SetWriteDeadline(time.Now().Add(c.writeTimeout))
 	}
 	if err := c.writeCommand(cmd, args); err != nil {
 		return c.fatal(err)
 	}
-	c.mu.Lock()
-	c.pending += 1
-	c.mu.Unlock()
 	return nil
 }