func()

in src/ulsp/controller/user-guidance/user_guidance.go [128:162]


func (c *controller) displayApplicableMessages(ctx context.Context) error {
	var wg sync.WaitGroup
	errChan := make(chan error, len(c.guidance.Messages))

	for _, msg := range c.guidance.Messages {
		wg.Add(1)
		go func(msg Message) {
			defer wg.Done()

			switch msg.Kind {
			case userGuidanceMessageKindOutput:
				if err := c.OutputMessage(ctx, msg); err != nil {
					errChan <- fmt.Errorf("output message '%s': %w", msg.Key, err)
					return
				}
			case userGuidanceMessageKindNotification:
				if _, err := c.NotifyMessage(ctx, msg); err != nil {
					errChan <- fmt.Errorf("notify message '%s': %w", msg.Key, err)
					return
				}
			}
		}(msg)
	}

	wg.Wait()
	close(errChan)

	for err := range errChan {
		if err != nil {
			return err
		}
	}

	return nil
}