Stop ticker when return from drain method
diff --git a/leveldb/util/buffer_pool.go b/leveldb/util/buffer_pool.go
index 2b8453d..2f3db97 100644
--- a/leveldb/util/buffer_pool.go
+++ b/leveldb/util/buffer_pool.go
@@ -201,6 +201,7 @@
 
 func (p *BufferPool) drain() {
 	ticker := time.NewTicker(2 * time.Second)
+	defer ticker.Stop()
 	for {
 		select {
 		case <-ticker.C: