mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-23 12:07:17 +00:00
32ec443572
* initial * gracefull shutdown for staged * more wg fixes * fmt * linters * remove generalization * linters * linters * fix * fix * fmt * quit into etl * after CR * after CR
30 lines
358 B
Go
30 lines
358 B
Go
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)
|
|
}
|
|
}
|