scala.collection.concurrent.CNodeBase Maven / Gradle / Ivy
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/
package scala.collection.concurrent;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
abstract class CNodeBase extends MainNode {
@SuppressWarnings("unchecked")
public static final AtomicIntegerFieldUpdater> updater =
AtomicIntegerFieldUpdater.newUpdater((Class>) (Class>) CNodeBase.class, "csize");
public volatile int csize = -1;
public boolean CAS_SIZE(int oldval, int nval) {
return updater.compareAndSet(this, oldval, nval);
}
public void WRITE_SIZE(int nval) {
updater.set(this, nval);
}
public int READ_SIZE() {
return updater.get(this);
}
}