()
| 1073 | } |
| 1074 | |
| 1075 | func (g *connGroup) grabConn() *conn { |
| 1076 | g.mutex.Lock() |
| 1077 | defer g.mutex.Unlock() |
| 1078 | |
| 1079 | if len(g.idleConns) == 0 { |
| 1080 | return nil |
| 1081 | } |
| 1082 | |
| 1083 | n := len(g.idleConns) - 1 |
| 1084 | c := g.idleConns[n] |
| 1085 | g.idleConns[n] = nil |
| 1086 | g.idleConns = g.idleConns[:n] |
| 1087 | |
| 1088 | if c.timer != nil { |
| 1089 | c.timer.Stop() |
| 1090 | } |
| 1091 | |
| 1092 | return c |
| 1093 | } |
| 1094 | |
| 1095 | func (g *connGroup) removeConn(c *conn) bool { |
| 1096 | g.mutex.Lock() |