X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2Ftree%2FListenerWalker.java;h=d1c4eacdf6e0fb29c25f63f380dad1de38fa8d10;hb=576efc4bd225c62269108466aaaa2c4a2dfd4d65;hp=0c297a2e2b5091c39c5c85784291c21fc7bb3cab;hpb=bfd413d87f82ee3ffed67a141a980805950a0f06;p=controller.git diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerWalker.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerWalker.java index 0c297a2e2b..d1c4eacdf6 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerWalker.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerWalker.java @@ -8,8 +8,8 @@ package org.opendaylight.controller.md.sal.dom.store.impl.tree; import com.google.common.base.Preconditions; -import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; -import java.util.concurrent.locks.Lock; +import org.opendaylight.controller.md.sal.dom.spi.RegistrationTreeSnapshot; +import org.opendaylight.controller.md.sal.dom.store.impl.DataChangeListenerRegistration; /** * A walking context, pretty much equivalent to an iterator, but it @@ -18,27 +18,18 @@ import java.util.concurrent.locks.Lock; * @author Robert Varga */ public class ListenerWalker implements AutoCloseable { - private static final AtomicIntegerFieldUpdater CLOSED_UPDATER = AtomicIntegerFieldUpdater.newUpdater(ListenerWalker.class, "closed"); - private final Lock lock; - private final ListenerNode node; + private final RegistrationTreeSnapshot> delegate; - // Used via CLOSED_UPDATER - @SuppressWarnings("unused") - private volatile int closed = 0; - - ListenerWalker(final Lock lock, final ListenerNode node) { - this.lock = Preconditions.checkNotNull(lock); - this.node = Preconditions.checkNotNull(node); + ListenerWalker(final RegistrationTreeSnapshot> delegate) { + this.delegate = Preconditions.checkNotNull(delegate); } public ListenerNode getRootNode() { - return node; + return new ListenerNode(delegate.getRootNode()); } @Override public void close() { - if (CLOSED_UPDATER.compareAndSet(this, 0, 1)) { - lock.unlock(); - } + delegate.close(); } } \ No newline at end of file