Files
kubevpn/pkg/util/chan.go
2024-05-13 19:58:56 +08:00

30 lines
396 B
Go

package util
func SafeRead[T any](c chan T) (T, bool) {
defer func() {
if r := recover(); r != nil {
}
}()
tt, ok := <-c
return tt, ok
}
func SafeWrite[T any](c chan<- T, value T) {
defer func() {
if r := recover(); r != nil {
}
}()
select {
case c <- value:
default:
}
}
func SafeClose[T any](c chan T) {
defer func() {
if r := recover(); r != nil {
}
}()
close(c)
}