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