< prev index next >

src/hotspot/share/runtime/safepointMechanism.inline.hpp

Print this page
rev 53592 : 8218145: block_if_requested is not proper inlined due to size
Reviewed-by:

*** 53,84 **** } else { return global_poll(); } } - void SafepointMechanism::block_if_requested_local_poll(JavaThread *thread) { - bool armed = local_poll_armed(thread); // load acquire, polling page -> op / global state - if(armed) { - // We could be armed for either a handshake operation or a safepoint - if (global_poll()) { - SafepointSynchronize::block(thread); - } - if (thread->has_handshake()) { - thread->handshake_process_by_self(); - } - } - } - void SafepointMechanism::block_if_requested(JavaThread *thread) { ! if (uses_thread_local_poll()) { ! block_if_requested_local_poll(thread); ! } else { ! // If we don't have per thread poll this could a handshake or a safepoint ! if (global_poll()) { ! SafepointSynchronize::block(thread); ! } } } void SafepointMechanism::arm_local_poll(JavaThread* thread) { thread->set_polling_page(poll_armed_value()); } --- 53,67 ---- } else { return global_poll(); } } void SafepointMechanism::block_if_requested(JavaThread *thread) { ! if (uses_thread_local_poll() && !SafepointMechanism::local_poll_armed(thread)) { ! return; } + block_if_requested_slow(thread); } void SafepointMechanism::arm_local_poll(JavaThread* thread) { thread->set_polling_page(poll_armed_value()); }
< prev index next >