forked from mirror/redis
v2: Add defensive pool check.
This commit is contained in:
parent
73b92efa94
commit
301d2f1353
|
@ -117,6 +117,10 @@ func (p *connPool) Get() (*conn, bool, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *connPool) Put(cn *conn) error {
|
func (p *connPool) Put(cn *conn) error {
|
||||||
|
if cn.Rd.Buffered() != 0 {
|
||||||
|
panic("pool: put connection with buffered data")
|
||||||
|
}
|
||||||
|
|
||||||
p.cond.L.Lock()
|
p.cond.L.Lock()
|
||||||
cn.UsedAt = time.Now()
|
cn.UsedAt = time.Now()
|
||||||
p.conns.PushFront(cn)
|
p.conns.PushFront(cn)
|
||||||
|
|
|
@ -27,19 +27,25 @@ func sortStrings(slice []string) []string {
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
type RedisShutdownTest struct {
|
type RedisConnectionTest struct {
|
||||||
|
opt *redis.Options
|
||||||
client *redis.Client
|
client *redis.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ = Suite(&RedisShutdownTest{})
|
var _ = Suite(&RedisConnectionTest{})
|
||||||
|
|
||||||
func (t *RedisShutdownTest) SetUpTest(c *C) {
|
func (t *RedisConnectionTest) SetUpTest(c *C) {
|
||||||
t.client = redis.DialTCP(&redis.Options{
|
t.opt = &redis.Options{
|
||||||
Addr: redisAddr,
|
Addr: redisAddr,
|
||||||
})
|
}
|
||||||
|
t.client = redis.DialTCP(t.opt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *RedisShutdownTest) TestShutdown(c *C) {
|
func (t *RedisConnectionTest) TearDownTest(c *C) {
|
||||||
|
c.Assert(t.client.Close(), IsNil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *RedisConnectionTest) TestShutdown(c *C) {
|
||||||
c.Skip("shutdowns server")
|
c.Skip("shutdowns server")
|
||||||
|
|
||||||
shutdown := t.client.Shutdown()
|
shutdown := t.client.Shutdown()
|
||||||
|
|
Loading…
Reference in New Issue