blob: 6f59f58ccb3ef870905e6ffe6831066bb76241c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package main
import (
"github.com/ewy1/pik/spool"
"sync"
)
type ComponentList[T any] []T
func (c ComponentList[T]) RunAsync(fire func(T) error) {
wg := sync.WaitGroup{}
for _, i := range c {
wg.Go(func() {
err := fire(i)
if err != nil {
_, _ = spool.Warn("%v\n", err)
}
})
}
wg.Wait()
}
func (c ComponentList[T]) RunSync(fire func(T) error) {
for _, i := range c {
err := fire(i)
if err != nil {
_, _ = spool.Warn("%v\n", err)
}
}
}
|