public virtual bool RemoveEndpoint(EndpointDiscoveryMetadata endpoint)
{
var removed = false;
using (var locker = @lock.ForReadingUpgradeable())
{
policies.ForEach(policy => removed = removed | policy.RemoveTarget(endpoint));
if (removed)
{
locker.Upgrade();
endpoints.Remove(endpoint.Address);
}
}
return removed;
}