ping: fix healthCheck panic

This commit is contained in:
wwqgtxx 2025-08-24 21:09:55 +08:00
parent ff4941daa4
commit dbd8e28fc8

View file

@ -30,11 +30,16 @@ type DirectRouteMapping struct {
func NewDirectRouteMapping(timeout time.Duration) *DirectRouteMapping { func NewDirectRouteMapping(timeout time.Duration) *DirectRouteMapping {
mapping := common.Must1(freelru.NewSharded[DirectRouteSession, DirectRouteDestination](1024, maphash.NewHasher[DirectRouteSession]().Hash32)) mapping := common.Must1(freelru.NewSharded[DirectRouteSession, DirectRouteDestination](1024, maphash.NewHasher[DirectRouteSession]().Hash32))
mapping.SetHealthCheck(func(session DirectRouteSession, destination DirectRouteDestination) bool { mapping.SetHealthCheck(func(session DirectRouteSession, action DirectRouteDestination) bool {
return !destination.IsClosed() if action != nil {
return !action.IsClosed()
}
return true
}) })
mapping.SetOnEvict(func(session DirectRouteSession, action DirectRouteDestination) { mapping.SetOnEvict(func(session DirectRouteSession, action DirectRouteDestination) {
if action != nil {
action.Close() action.Close()
}
}) })
mapping.SetLifetime(timeout) mapping.SetLifetime(timeout)
return &DirectRouteMapping{mapping, timeout} return &DirectRouteMapping{mapping, timeout}