fixed cache bug

This commit is contained in:
Lunny Xiao 2013-11-21 01:24:22 +08:00
parent de06e54874
commit 7acf5c65b1
1 changed files with 4 additions and 3 deletions

View File

@ -153,6 +153,7 @@ func (m *LRUCacher) GC() {
} }
} }
removedNum = 0
for e := m.sqlList.Front(); e != nil; { for e := m.sqlList.Front(); e != nil; {
if removedNum <= CacheGcMaxRemoved && if removedNum <= CacheGcMaxRemoved &&
time.Now().Sub(e.Value.(*sqlNode).lastVisit) > m.Expired { time.Now().Sub(e.Value.(*sqlNode).lastVisit) > m.Expired {
@ -160,7 +161,7 @@ func (m *LRUCacher) GC() {
next := e.Next() next := e.Next()
//fmt.Println("removing ...", e.Value) //fmt.Println("removing ...", e.Value)
node := e.Value.(*sqlNode) node := e.Value.(*sqlNode)
m.DelIds(node.tbName, node.sql) m.delIds(node.tbName, node.sql)
e = next e = next
} else { } else {
break break
@ -322,8 +323,8 @@ func (m *LRUCacher) DelIds(tableName, sql string) {
func (m *LRUCacher) delBean(tableName string, id int64) { func (m *LRUCacher) delBean(tableName string, id int64) {
tid := genId(tableName, id) tid := genId(tableName, id)
if el, ok := m.idIndex[tableName][tid]; ok { if el, ok := m.idIndex[tableName][id]; ok {
delete(m.idIndex[tableName], tid) delete(m.idIndex[tableName], id)
m.idList.Remove(el) m.idList.Remove(el)
m.clearIds(tableName) m.clearIds(tableName)
} }