Skip to content

Commit d525223

Browse files
committed
utils: revert b9272a9 (#1419,#1345)
1 parent 036f590 commit d525223

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

pkg/topom/topom_slots.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ func (s *Topom) newSlotActionExecutor(sid int) (func(db int) (remains int, nextd
396396
if err != nil {
397397
return 0, -1, err
398398
}
399-
defer s.action.redisp.PutClient(c, err)
399+
defer s.action.redisp.PutClient(c)
400400

401401
if err := c.Select(db); err != nil {
402402
return 0, -1, err

pkg/topom/topom_stats.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func (s *Topom) RefreshRedisStats(timeout time.Duration) (*sync2.Future, error)
7979
if err != nil {
8080
return nil, err
8181
}
82-
defer s.ha.redisp.PutClient(c, err)
82+
defer s.ha.redisp.PutClient(c)
8383
m, err := c.Info()
8484
if err != nil {
8585
return nil, err

pkg/utils/redis/client.go

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -328,10 +328,15 @@ func NewPool(auth string, timeout time.Duration) *Pool {
328328
}
329329

330330
func (p *Pool) isRecyclable(c *Client) bool {
331-
if c.conn.Err() != nil {
331+
switch {
332+
case c.conn.Err() != nil:
332333
return false
334+
case p.timeout == 0:
335+
return true
336+
case p.timeout >= time.Since(c.LastUse):
337+
return true
333338
}
334-
return p.timeout == 0 || time.Since(c.LastUse) < p.timeout
339+
return false
335340
}
336341

337342
func (p *Pool) Close() error {
@@ -403,10 +408,10 @@ func (p *Pool) getClientFromCache(addr string) (*Client, error) {
403408
return nil, nil
404409
}
405410

406-
func (p *Pool) PutClient(c *Client, err error) {
411+
func (p *Pool) PutClient(c *Client) {
407412
p.mu.Lock()
408413
defer p.mu.Unlock()
409-
if err != nil || p.closed || !p.isRecyclable(c) {
414+
if p.closed || !p.isRecyclable(c) {
410415
c.Close()
411416
} else {
412417
cache := p.pool[c.Addr]
@@ -423,25 +428,17 @@ func (p *Pool) Info(addr string) (_ map[string]string, err error) {
423428
if err != nil {
424429
return nil, err
425430
}
426-
defer p.PutClient(c, err)
427-
m, err := c.Info()
428-
if err != nil {
429-
return nil, err
430-
}
431-
return m, nil
431+
defer p.PutClient(c)
432+
return c.Info()
432433
}
433434

434435
func (p *Pool) InfoFull(addr string) (_ map[string]string, err error) {
435436
c, err := p.GetClient(addr)
436437
if err != nil {
437438
return nil, err
438439
}
439-
defer p.PutClient(c, err)
440-
m, err := c.InfoFull()
441-
if err != nil {
442-
return nil, err
443-
}
444-
return m, nil
440+
defer p.PutClient(c)
441+
return c.InfoFull()
445442
}
446443

447444
type InfoCache struct {

0 commit comments

Comments
 (0)