Ensure ewma int64s are always aligned. (#2675)

This commit is contained in:
Tom Wilkie 2017-05-03 20:32:50 +01:00 committed by Julius Volz
parent 4d9b917d11
commit 2195bb66f7
2 changed files with 5 additions and 3 deletions

View File

@ -29,8 +29,10 @@ type ewmaRate struct {
mutex sync.Mutex mutex sync.Mutex
} }
func newEWMARate(alpha float64, interval time.Duration) ewmaRate { // newEWMARate always allocates a new ewmaRate, as this guarantees the atomically
return ewmaRate{ // accessed int64 will be aligned on ARM. See prometheus#2666.
func newEWMARate(alpha float64, interval time.Duration) *ewmaRate {
return &ewmaRate{
alpha: alpha, alpha: alpha,
interval: interval, interval: interval,
} }

View File

@ -185,7 +185,7 @@ type QueueManager struct {
quit chan struct{} quit chan struct{}
wg sync.WaitGroup wg sync.WaitGroup
samplesIn, samplesOut, samplesOutDuration ewmaRate samplesIn, samplesOut, samplesOutDuration *ewmaRate
integralAccumulator float64 integralAccumulator float64
} }