hotspot/src/share/vm/runtime/objectMonitor.cpp
static int Adjust (volatile int * adr, int dx) {
{- -------------------------------------------
(1) Atomic::cmpxchg() で値をインクリメントする (成功するまで繰り返す).
---------------------------------------- -}
int v ;
for (v = *adr ; Atomic::cmpxchg (v + dx, adr, v) != v; v = *adr) ;
return v ;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.