func()

in pkg/containerd/store.go [128:163]


func (c *store) Subscribe(ctx context.Context) (<-chan Reference, <-chan error) {
	refChan := make(chan Reference)
	errChan := make(chan error)

	eventsChan, eventsErrChan := c.client.EventService().Subscribe(ctx, c.eventFilter)
	go func() {
		for event := range eventsChan {
			name, err := getEventImageName(event.Event)
			if err != nil {
				errChan <- err
				continue
			}

			image, err := c.client.GetImage(ctx, name)
			if err != nil {
				errChan <- err
				continue
			}

			ref, err := ParseReference(image.Name(), image.Target().Digest)
			if err != nil {
				errChan <- err
			} else {
				refChan <- ref
			}
		}
	}()

	go func() {
		for err := range eventsErrChan {
			errChan <- err
		}
	}()

	return refChan, errChan
}