Browse Source

Fix race in chunkDesc.

Change-Id: Id7bae115d75886e10d44184a690a76777b1531fe
pull/413/head
Bjoern Rabenstein 10 years ago
parent
commit
fd6600850a
  1. 7
      storage/local/series.go

7
storage/local/series.go

@ -161,6 +161,9 @@ func (cd *chunkDesc) unpin() {
}
func (cd *chunkDesc) firstTime() clientmodel.Timestamp {
cd.Lock()
defer cd.Unlock()
if cd.chunk == nil {
return cd.firstTimeField
}
@ -168,6 +171,9 @@ func (cd *chunkDesc) firstTime() clientmodel.Timestamp {
}
func (cd *chunkDesc) lastTime() clientmodel.Timestamp {
cd.Lock()
defer cd.Unlock()
if cd.chunk == nil {
return cd.lastTimeField
}
@ -201,6 +207,7 @@ func (cd *chunkDesc) evictOnUnpin() {
cd.evict = true
}
// evictNow is an internal helper method.
func (cd *chunkDesc) evictNow() {
cd.firstTimeField = cd.chunk.firstTime()
cd.lastTimeField = cd.chunk.lastTime()

Loading…
Cancel
Save