< prev index next >
src/hotspot/share/runtime/vmThread.cpp
Print this page
rev 57156 : imported patch 8234796-v3
*** 411,423 ****
}
static VM_None safepointALot_op("SafepointALot");
static VM_Cleanup cleanup_op;
! class HandshakeALotTC : public ThreadClosure {
public:
! virtual void do_thread(Thread* thread) {
#ifdef ASSERT
assert(thread->is_Java_thread(), "must be");
JavaThread* jt = (JavaThread*)thread;
jt->verify_states_for_handshake();
#endif
--- 411,424 ----
}
static VM_None safepointALot_op("SafepointALot");
static VM_Cleanup cleanup_op;
! class HandshakeALotClosure : public HandshakeClosure {
public:
! HandshakeALotClosure() : HandshakeClosure("HandshakeALot") {}
! void do_thread(Thread* thread) {
#ifdef ASSERT
assert(thread->is_Java_thread(), "must be");
JavaThread* jt = (JavaThread*)thread;
jt->verify_states_for_handshake();
#endif
*** 430,441 ****
}
VM_Operation* VMThread::no_op_safepoint() {
// Check for handshakes first since we may need to return a VMop.
if (HandshakeALot) {
! HandshakeALotTC haltc;
! Handshake::execute(&haltc);
}
// Check for a cleanup before SafepointALot to keep stats correct.
long interval_ms = SafepointTracing::time_since_last_safepoint_ms();
bool max_time_exceeded = GuaranteedSafepointInterval != 0 &&
(interval_ms >= GuaranteedSafepointInterval);
--- 431,442 ----
}
VM_Operation* VMThread::no_op_safepoint() {
// Check for handshakes first since we may need to return a VMop.
if (HandshakeALot) {
! HandshakeALotClosure hal_cl;
! Handshake::execute(&hal_cl);
}
// Check for a cleanup before SafepointALot to keep stats correct.
long interval_ms = SafepointTracing::time_since_last_safepoint_ms();
bool max_time_exceeded = GuaranteedSafepointInterval != 0 &&
(interval_ms >= GuaranteedSafepointInterval);
< prev index next >