OnceErr wraps the behavior of recording an error once and signal on a channel when this has occurred. Signaling is done by closing of the channel.
Type is safe for concurrent usage.
type OnceErr struct {
// contains filtered or unexported fields
}
func NewOnceErr() *OnceErr
NewOnceErr return a new OnceErr
func (e *OnceErr) Err() error
Err acquires a read-lock and returns an error if one has been set.
func (e *OnceErr) ErrorSet() <-chan struct{}
ErrorSet returns a channel that will be used to signal that an error has been set. This channel will be closed when the error value has been set for OnceErr.
func (e *OnceErr) SetError(err error)
SetError acquires a write-lock and will set the underlying error value if one has not been set.