8331405: Shenandoah: Optimize ShenandoahLock with TTAS
Reviewed-by: zgu, ysr
This commit is contained in:
parent
dd906ffdcb
commit
c4fe5bf90c
@ -54,7 +54,8 @@ template<typename BlockOp>
|
||||
void ShenandoahLock::contended_lock_internal(JavaThread* java_thread) {
|
||||
int ctr = 0;
|
||||
int yields = 0;
|
||||
while (Atomic::cmpxchg(&_state, unlocked, locked) != unlocked) {
|
||||
while (Atomic::load(&_state) == locked ||
|
||||
Atomic::cmpxchg(&_state, unlocked, locked) != unlocked) {
|
||||
if ((++ctr & 0xFFF) == 0) {
|
||||
BlockOp block(java_thread);
|
||||
if (yields > 5) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user