Code example for AtomicReferenceFieldUpdater

Methods: compareAndSet

    public volatile MainNode<K, V> prev = null;
    public abstract int cachedSize(Object ct);
    public boolean CAS_PREV(MainNode<K, V> oldval, MainNode<K, V> nval) {
	return updater.compareAndSet(this, oldval, nval);
    public void WRITE_PREV(MainNode<K, V> nval) {
	updater.set(this, nval);
    // do we need this? unclear in the javadocs... 
    // apparently not - volatile reads are supposed to be safe 
    // irregardless of whether there are concurrent ARFU updates 
    @Deprecated @SuppressWarnings("unchecked") 
    public MainNode<K, V> READ_PREV() { 
	return updater.get(this);