in job_instance.go [120:139]
func (ji *JobInstance[T]) Wait(ctx context.Context) error {
var tasks []asynctask.Waitable
for _, step := range ji.steps {
tasks = append(tasks, step.Waitable())
}
err := asynctask.WaitAll(ctx, &asynctask.WaitAllOptions{}, tasks...)
// return rootCaused error if possible
if err != nil {
jobErr := &JobError{}
if errors.As(err, &jobErr) {
return jobErr.RootCause()
}
return err
}
return nil
}