/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
/** * Tries to artificially match a data node -- used by remove. */ final boolean tryMatchData() { // assert isData; Object x = item; if (x != null && x != this && casItem(x, null)) { LockSupport.unpark(waiter); return true; } return false; }
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
if (isData == haveData) // can't match break; if (p.casItem(item, e)) { // match for (Node q = p; q != h; ) {
s.casItem(e, s)) { // cancel unsplice(pred, s); return e;