equal
deleted
inserted
replaced
892 assert(mark->is_neutral(), "sanity check"); |
892 assert(mark->is_neutral(), "sanity check"); |
893 return owner_none; // it's unlocked |
893 return owner_none; // it's unlocked |
894 } |
894 } |
895 |
895 |
896 // FIXME: jvmti should call this |
896 // FIXME: jvmti should call this |
897 JavaThread* ObjectSynchronizer::get_lock_owner(Handle h_obj, bool doLock) { |
897 JavaThread* ObjectSynchronizer::get_lock_owner(ThreadsList * t_list, Handle h_obj) { |
898 if (UseBiasedLocking) { |
898 if (UseBiasedLocking) { |
899 if (SafepointSynchronize::is_at_safepoint()) { |
899 if (SafepointSynchronize::is_at_safepoint()) { |
900 BiasedLocking::revoke_at_safepoint(h_obj); |
900 BiasedLocking::revoke_at_safepoint(h_obj); |
901 } else { |
901 } else { |
902 BiasedLocking::revoke_and_rebias(h_obj, false, JavaThread::current()); |
902 BiasedLocking::revoke_and_rebias(h_obj, false, JavaThread::current()); |
921 owner = (address) monitor->owner(); |
921 owner = (address) monitor->owner(); |
922 } |
922 } |
923 |
923 |
924 if (owner != NULL) { |
924 if (owner != NULL) { |
925 // owning_thread_from_monitor_owner() may also return NULL here |
925 // owning_thread_from_monitor_owner() may also return NULL here |
926 return Threads::owning_thread_from_monitor_owner(owner, doLock); |
926 return Threads::owning_thread_from_monitor_owner(t_list, owner); |
927 } |
927 } |
928 |
928 |
929 // Unlocked case, header in place |
929 // Unlocked case, header in place |
930 // Cannot have assertion since this object may have been |
930 // Cannot have assertion since this object may have been |
931 // locked by another thread when reaching here. |
931 // locked by another thread when reaching here. |