Use an RW lock to checkpoint fingerprint mappings.

This has to be backported to 0.13.x.
This commit is contained in:
beorn7 2015-05-23 14:05:05 +02:00
parent acd2df7507
commit dbcb3d9333

View file

@ -141,10 +141,10 @@ func (m *fpMapper) maybeAddMapping(
// A new mapping has to be created.
mappedFP = m.nextMappedFP()
mappedFPs[ms] = mappedFP
m.mtx.RLock()
m.mtx.Lock()
// Checkpoint mappings after each change.
err := m.p.checkpointFPMappings(m.mappings)
m.mtx.RUnlock()
m.mtx.Unlock()
log.Infof(
"Collision detected for fingerprint %v, metric %v, mapping to new fingerprint %v.",
fp, collidingMetric, mappedFP,