307 boolean casItem(E cmp, E val) { |
307 boolean casItem(E cmp, E val) { |
308 return U.compareAndSwapObject(this, ITEM, cmp, val); |
308 return U.compareAndSwapObject(this, ITEM, cmp, val); |
309 } |
309 } |
310 |
310 |
311 void lazySetNext(Node<E> val) { |
311 void lazySetNext(Node<E> val) { |
312 U.putOrderedObject(this, NEXT, val); |
312 U.putObjectRelease(this, NEXT, val); |
313 } |
313 } |
314 |
314 |
315 boolean casNext(Node<E> cmp, Node<E> val) { |
315 boolean casNext(Node<E> cmp, Node<E> val) { |
316 return U.compareAndSwapObject(this, NEXT, cmp, val); |
316 return U.compareAndSwapObject(this, NEXT, cmp, val); |
317 } |
317 } |
318 |
318 |
319 void lazySetPrev(Node<E> val) { |
319 void lazySetPrev(Node<E> val) { |
320 U.putOrderedObject(this, PREV, val); |
320 U.putObjectRelease(this, PREV, val); |
321 } |
321 } |
322 |
322 |
323 boolean casPrev(Node<E> cmp, Node<E> val) { |
323 boolean casPrev(Node<E> cmp, Node<E> val) { |
324 return U.compareAndSwapObject(this, PREV, cmp, val); |
324 return U.compareAndSwapObject(this, PREV, cmp, val); |
325 } |
325 } |