go-logging
go-logging copied to clipboard
backend, logger: lock before reassigning `defaultBackend`
If not locked, this results in race:
- SetBackend(), backend.go:26 - reassigning the global variable (write)
func SetBackend(backends ...Backend) LeveledBackend {
var backend Backend
// ...
// DARA RACE START
defaultBackend = AddModuleLevel(backend)
// DATA RACE END
return defaultBackend
}
- IsEnabledFor(), logger.go:141 - accessing a default variable (read)
func (l *Logger) IsEnabledFor(level Level) bool {
return defaultBackend.IsEnabledFor(level, l.Module) // DATA RACE HERE
}