forked from mirrors/statsd_exporter
Event queue processes and filling race.
We send the slice off to be process, but potentially start overwriting the previous content straight away. Just start again with a fresh slice. Fixes #247 Signed-off-by: Tristan Colgate <tristan@qubit.com>
This commit is contained in:
parent
e60f2f147b
commit
49296e321e
1 changed files with 2 additions and 1 deletions
3
event.go
3
event.go
|
@ -82,6 +82,7 @@ func newEventQueue(c chan Events, flushThreshold int, flushInterval time.Duratio
|
||||||
c: c,
|
c: c,
|
||||||
flushThreshold: flushThreshold,
|
flushThreshold: flushThreshold,
|
||||||
flushTicker: ticker,
|
flushTicker: ticker,
|
||||||
|
q: make([]Event, 0, flushThreshold),
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
@ -112,7 +113,7 @@ func (eq *eventQueue) flush() {
|
||||||
|
|
||||||
func (eq *eventQueue) flushUnlocked() {
|
func (eq *eventQueue) flushUnlocked() {
|
||||||
eq.c <- eq.q
|
eq.c <- eq.q
|
||||||
eq.q = eq.q[:0]
|
eq.q = make([]Event, 0, cap(eq.q))
|
||||||
eventsFlushed.Inc()
|
eventsFlushed.Inc()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue