erigon-pulse/common/chan.go
ledgerwatch 826f6ce377
Move ETL to erigon-lib (#65)
* Move ETL to erigon-lib

* Add coded

* Remove walk

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2021-09-11 16:11:41 +01:00

31 lines
398 B
Go

package common
import "errors"
var ErrStopped = errors.New("stopped")
var ErrUnwind = errors.New("unwound")
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)
}
}