goroutine references address overwritten in loop; pass-by-value

This commit is contained in:
kelson 2019-04-13 17:26:02 -04:00
parent 4dadc3f41b
commit 01d33415a6

View file

@ -112,15 +112,15 @@ func (p *EventPool) Add(tag string, data interface{}) {
// broadcast the event to every listener // broadcast the event to every listener
for _, l := range p.listeners { for _, l := range p.listeners {
// do not block! // do not block!
go func(ch *chan Event) { go func(ch chan Event) {
// channel might be closed // channel might be closed
defer func() { defer func() {
if recover() != nil { if recover() != nil {
} }
}() }()
*ch <- e ch <- e
}(&l) }(l)
} }
} }