< prev index next >
src/hotspot/share/runtime/safepoint.cpp
Print this page
rev 47413 : Introduce SafepointMechanism
*** 1108,1118 ****
return_value = Handle(thread(), result);
assert(Universe::heap()->is_in_or_null(result), "must be heap pointer");
}
// Block the thread
! SafepointSynchronize::block(thread());
// restore oop result, if any
if (return_oop) {
caller_fr.set_saved_oop_result(&map, return_value());
}
--- 1108,1118 ----
return_value = Handle(thread(), result);
assert(Universe::heap()->is_in_or_null(result), "must be heap pointer");
}
// Block the thread
! SafepointMechanism::block_if_requested(thread());
// restore oop result, if any
if (return_oop) {
caller_fr.set_saved_oop_result(&map, return_value());
}
*** 1124,1134 ****
// verify the blob built the "return address" correctly
assert(real_return_addr == caller_fr.pc(), "must match");
// Block the thread
! SafepointSynchronize::block(thread());
set_at_poll_safepoint(false);
// If we have a pending async exception deoptimize the frame
// as otherwise we may never deliver it.
if (thread()->has_async_condition()) {
--- 1124,1134 ----
// verify the blob built the "return address" correctly
assert(real_return_addr == caller_fr.pc(), "must match");
// Block the thread
! SafepointMechanism::block_if_requested(thread());
set_at_poll_safepoint(false);
// If we have a pending async exception deoptimize the frame
// as otherwise we may never deliver it.
if (thread()->has_async_condition()) {
< prev index next >