func()

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)
	}
}