-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
multi.go
27 lines (21 loc) · 888 Bytes
/
multi.go
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
package services
import (
"io"
"github.com/smartcontractkit/chainlink-common/pkg/services"
)
// StartClose is a subset of the ServiceCtx interface.
type StartClose = services.StartClose
// MultiStart is a utility for starting multiple services together.
// The set of started services is tracked internally, so that they can be closed if any single service fails to start.
type MultiStart = services.MultiStart
// CloseAll closes all elements concurrently.
// Use this when you have various different types of io.Closer.
func CloseAll(cs ...io.Closer) error {
return services.CloseAll(cs...)
}
// MultiCloser returns an io.Closer which closes all elements concurrently.
// Use this when you have a slice of a type which implements io.Closer.
// []io.Closer can be cast directly to MultiCloser.
func MultiCloser[C io.Closer](cs []C) io.Closer {
return services.MultiCloser(cs)
}