1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00

Small API changes.

This commit is contained in:
Vladimir Mihailenco
2013-09-29 10:17:39 +03:00
parent e90db6f494
commit 7f11168689
5 changed files with 97 additions and 125 deletions

View File

@ -5,7 +5,6 @@ import (
"log"
"net"
"os"
"sync"
"time"
)
@ -19,8 +18,7 @@ type baseClient struct {
opt *Options
reqs []Req
reqsMtx sync.Mutex
reqs []Req
}
func (c *baseClient) writeReq(cn *conn, reqs ...Req) error {
@ -75,6 +73,14 @@ func (c *baseClient) init(cn *conn, password string, db int64) error {
return nil
}
func (c *baseClient) freeConn(cn *conn, err error) {
if err == Nil {
c.putConn(cn)
} else {
c.removeConn(cn)
}
}
func (c *baseClient) removeConn(cn *conn) {
if err := c.connPool.Remove(cn); err != nil {
Logger.Printf("connPool.Remove error: %v", err)
@ -91,7 +97,7 @@ func (c *baseClient) Process(req Req) {
if c.reqs == nil {
c.run(req)
} else {
c.queue(req)
c.reqs = append(c.reqs, req)
}
}
@ -120,11 +126,7 @@ func (c *baseClient) run(req Req) {
val, err := req.ParseReply(cn.Rd)
if err != nil {
if err == Nil {
c.putConn(cn)
} else {
c.removeConn(cn)
}
c.freeConn(cn, err)
req.SetErr(err)
return
}
@ -133,13 +135,6 @@ func (c *baseClient) run(req Req) {
req.SetVal(val)
}
// Queues request to be executed later.
func (c *baseClient) queue(req Req) {
c.reqsMtx.Lock()
c.reqs = append(c.reqs, req)
c.reqsMtx.Unlock()
}
func (c *baseClient) Close() error {
return c.connPool.Close()
}