< prev index next >

src/hotspot/share/runtime/biasedLocking.cpp

Print this page
rev 56251 : imported patch 8226705-v1
rev 56253 : [mq]: 8226705-v3-pat

*** 724,749 **** } assert(!obj->mark().has_bias_pattern(), "must not be biased"); } ! void BiasedLocking::revoke_own_locks(Handle obj, TRAPS) { markWord mark = obj->mark(); if (!mark.has_bias_pattern()) { return; } Klass *k = obj->klass(); ! markWord prototype_header = k->prototype_header(); ! assert(mark.biased_locker() == THREAD && ! prototype_header.bias_epoch() == mark.bias_epoch(), "Revoke failed, unhandled biased lock state"); ResourceMark rm; log_info(biasedlocking)("Revoking bias by walking my own stack:"); EventBiasedLockSelfRevocation event; ! BiasedLocking::walk_stack_and_revoke(obj(), (JavaThread*) THREAD); ! ((JavaThread*) THREAD)->set_cached_monitor_info(NULL); assert(!obj->mark().has_bias_pattern(), "invariant"); if (event.should_commit()) { post_self_revocation_event(&event, k); } } --- 724,751 ---- } assert(!obj->mark().has_bias_pattern(), "must not be biased"); } ! void BiasedLocking::revoke_own_lock(Handle obj, TRAPS) { ! assert(THREAD->is_Java_thread(), "must be called by a JavaThread"); ! JavaThread* thread = (JavaThread*)THREAD; ! markWord mark = obj->mark(); if (!mark.has_bias_pattern()) { return; } Klass *k = obj->klass(); ! assert(mark.biased_locker() == thread && ! k->prototype_header().bias_epoch() == mark.bias_epoch(), "Revoke failed, unhandled biased lock state"); ResourceMark rm; log_info(biasedlocking)("Revoking bias by walking my own stack:"); EventBiasedLockSelfRevocation event; ! BiasedLocking::walk_stack_and_revoke(obj(), (JavaThread*) thread); ! thread->set_cached_monitor_info(NULL); assert(!obj->mark().has_bias_pattern(), "invariant"); if (event.should_commit()) { post_self_revocation_event(&event, k); } }
< prev index next >