func refresh()

in pkg/display/graph/dashboard/global.go [319:359]


func refresh(ctx context.Context, interval time.Duration) {
	ticker := time.NewTicker(interval)
	defer ticker.Stop()

	initStartStr = ctx.Value(contextkey.DurationStart{}).(string)
	initEndStr = ctx.Value(contextkey.DurationEnd{}).(string)
	initStep = ctx.Value(contextkey.DurationStep{}).(api.Step)

	_, start, err := interceptor.TryParseTime(initStartStr, initStep)
	if err != nil {
		return
	}
	_, end, err := interceptor.TryParseTime(initEndStr, initStep)
	if err != nil {
		return
	}

	curStartTime = start
	curEndTime = end

	for {
		select {
		case <-ticker.C:
			d, err := updateDuration(interval)
			if err != nil {
				continue
			}

			data, err := dashboard.Global(ctx, d)
			if err != nil {
				continue
			}

			if err := updateAllWidgets(data); err != nil {
				continue
			}
		case <-ctx.Done():
			return
		}
	}
}