in galog.go [582:607]
func (lg *logger) Shutdown(timeout time.Duration) {
var backends []*BackendQueue
lg.queuesMutex.Lock()
for _, queue := range lg.queues {
backends = append(backends, queue)
}
lg.queuesMutex.Unlock()
// Equivalent to unsubscribe, make sure we stop accepting new entries.
for _, queue := range backends {
lg.UnregisterBackend(queue.backend)
}
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()
// Flush any pending writes.
for _, queue := range backends {
if ctx.Err() != nil {
break
}
lg.flushEnqueuedEntries(ctx, queue)
queue.backend.Shutdown(ctx)
}
}