Extract appending from goroutine.

This commit is contained in:
Matt T. Proud 2013-03-14 18:09:19 -07:00
parent 187cd4cdbc
commit 47ce7ad302
1 changed files with 37 additions and 43 deletions

View File

@ -540,7 +540,6 @@ func (l *LevelDBMetricPersistence) AppendSamples(samples model.Samples) (err err
var (
fingerprintToSamples = groupByFingerprint(samples)
indexErrChan = make(chan error)
doneCommitting sync.WaitGroup
)
go func(groups map[model.Fingerprint]model.Samples) {
@ -555,11 +554,8 @@ func (l *LevelDBMetricPersistence) AppendSamples(samples model.Samples) (err err
indexErrChan <- l.indexMetrics(metrics)
}(fingerprintToSamples)
go func() {
doneCommitting.Add(1)
samplesBatch := leveldb.NewBatch()
defer samplesBatch.Close()
defer doneCommitting.Done()
for fingerprint, group := range fingerprintToSamples {
for {
@ -601,9 +597,7 @@ func (l *LevelDBMetricPersistence) AppendSamples(samples model.Samples) (err err
if err != nil {
panic(err)
}
}()
doneCommitting.Wait()
err = <-indexErrChan
if err != nil {
panic(err)