21
0
Fork 0
goext/exerr/listener.go

27 lines
411 B
Go

package exerr
import (
"sync"
)
type Listener = func(method Method, v *ExErr)
var listenerLock = sync.Mutex{}
var listener = make([]Listener, 0)
func RegisterListener(l Listener) {
listenerLock.Lock()
defer listenerLock.Unlock()
listener = append(listener, l)
}
func (ee *ExErr) CallListener(m Method) {
listenerLock.Lock()
defer listenerLock.Unlock()
for _, v := range listener {
v(m, ee)
}
}