erigon-pulse/common/chan.go

30 lines
358 B
Go
Raw Normal View History

package common
import "errors"
var ErrStopped = errors.New("stopped")
func Stopped(ch chan struct{}) error {
if ch == nil {
return nil
}
select {
case <-ch:
return ErrStopped
default:
}
return nil
}
func SafeClose(ch chan struct{}) {
if ch == nil {
return
}
select {
case <-ch:
// Channel was already closed
default:
close(ch)
}
}