import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Nonnull;
import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
private NetconfNodeManager netconfNodeManager;
private ActorRef masterActorRef;
private boolean finalClose = false;
- private boolean closed = false;
+ private final AtomicBoolean closed = new AtomicBoolean(false);
private boolean isMaster;
NetconfTopologyContext(final NetconfTopologySetup netconfTopologyDeviceSetup,
}
}
- private synchronized void stopDeviceConnectorAndActor() {
- if (closed) {
+ private void stopDeviceConnectorAndActor() {
+ if (!closed.compareAndSet(false, true)) {
return;
}
if (remoteDeviceConnector != null) {
netconfTopologyDeviceSetup.getActorSystem().stop(masterActorRef);
masterActorRef = null;
}
- closed = true;
}
}