private MainNode<K, V> GCAS_READ(final TrieMap<?, ?> ct) {
MainNode<K, V> m = /* READ */ mainnode;
- MainNode<K, V> prevval = /* READ */ m.READ_PREV();
+ MainNode<K, V> prevval = /* READ */ m.readPrev();
if (prevval == null) {
return m;
}
MainNode<K, V> m = oldmain;
while (m != null) {
// complete the GCAS
- final MainNode<K, V> prev = /* READ */ m.READ_PREV();
+ final MainNode<K, V> prev = /* READ */ m.readPrev();
final INode<?, ?> ctr = ct.readRoot(true);
if (prev == null) {
return m;
if (prev instanceof FailedNode) {
// try to commit to previous value
FailedNode<K, V> fn = (FailedNode<K, V>) prev;
- if (MAINNODE_UPDATER.compareAndSet(this, m, fn.READ_PREV())) {
- return fn.READ_PREV();
+ if (MAINNODE_UPDATER.compareAndSet(this, m, fn.readPrev())) {
+ return fn.readPrev();
}
// Tail recursion: return GCAS_Complete(/* READ */ mainnode, ct);
// or both
if (ctr.gen == gen && !ct.isReadOnly()) {
// try to commit
- if (m.CAS_PREV(prev, null)) {
+ if (m.casPrev(prev, null)) {
return m;
}
}
// try to abort
- m.CAS_PREV(prev, new FailedNode<>(prev));
+ m.casPrev(prev, new FailedNode<>(prev));
// Tail recursion: return GCAS_Complete(/* READ */ mainnode, ct);
m = /* READ */ mainnode;
}
private boolean GCAS(final MainNode<K, V> old, final MainNode<K, V> n, final TrieMap<?, ?> ct) {
- n.WRITE_PREV(old);
+ n.writePrev(old);
if (MAINNODE_UPDATER.compareAndSet(this, old, n)) {
GCAS_Complete(n, ct);
- return /* READ */ n.READ_PREV() == null;
+ return /* READ */ n.readPrev() == null;
}
return false;
*/
abstract int size(ImmutableTrieMap<?, ?> ct);
- final boolean CAS_PREV(final MainNode<K, V> oldval, final MainNode<K, V> nval) {
+ final boolean casPrev(final MainNode<K, V> oldval, final MainNode<K, V> nval) {
return PREV_UPDATER.compareAndSet(this, oldval, nval);
}
- final void WRITE_PREV(final MainNode<K, V> nval) {
+ final void writePrev(final MainNode<K, V> nval) {
prev = nval;
}
- final MainNode<K, V> READ_PREV() {
+ final MainNode<K, V> readPrev() {
return prev;
}
}