mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
8331405: Shenandoah: Optimize ShenandoahLock with TTAS
Reviewed-by: zgu, ysr
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user