Files
v2fly/common/task/taskDerive/tryAll.go
T

29 lines
540 B
Go
Raw Normal View History

package taskDerive
import (
"context"
"github.com/v2fly/v2ray-core/v5/common/task"
)
func RunTryAll(ctx context.Context, tasks ...func() error) []error {
errors := make([]error, len(tasks))
wrappedTasks := make([]func() error, len(tasks))
for i, currentTask := range tasks {
index := i
wrappedTasks[i] = func() error {
err := currentTask()
errors[index] = err
if err != nil {
return nil
}
return newError()
}
}
runErr := task.Run(ctx, wrappedTasks...)
if runErr != nil {
return nil
}
return errors
}