private void MaintainAddressTerminatedSubscription(Action block, IActorRef change = null)
{
if (IsNonLocal(change))
{
var had = HasNonLocalAddress();
block();
var has = HasNonLocalAddress();
if (had && !has)
UnsubscribeAddressTerminated();
else if (!had && has)
SubscribeAddressTerminated();
}
else
{
block();
}
}