< prev index next >
src/hotspot/share/runtime/safepoint.cpp
Print this page
rev 52355 : Remove safepoint-cleanup piggybacking code
*** 591,620 ****
return false;
}
class ParallelSPCleanupThreadClosure : public ThreadClosure {
private:
- bool _do_deflate_idle_monitors;
CodeBlobClosure* _nmethod_cl;
DeflateMonitorCounters* _counters;
public:
ParallelSPCleanupThreadClosure(DeflateMonitorCounters* counters) :
! _counters(counters) {
! VM_Operation* op = VMThread::vm_operation();
! _do_deflate_idle_monitors = op == NULL || ! op->deflates_idle_monitors();
! if (op == NULL || ! op->marks_nmethods()) {
! _nmethod_cl = NMethodSweeper::prepare_mark_active_nmethods();
! } else {
! _nmethod_cl = NULL;
! }
! }
void do_thread(Thread* thread) {
! if (_do_deflate_idle_monitors) {
! ObjectSynchronizer::deflate_thread_local_monitors(thread, _counters, NULL);
! }
if (_nmethod_cl != NULL && thread->is_Java_thread() &&
! thread->is_Code_cache_sweeper_thread()) {
JavaThread* jt = (JavaThread*) thread;
jt->nmethods_do(_nmethod_cl);
}
--- 591,609 ----
return false;
}
class ParallelSPCleanupThreadClosure : public ThreadClosure {
private:
CodeBlobClosure* _nmethod_cl;
DeflateMonitorCounters* _counters;
public:
ParallelSPCleanupThreadClosure(DeflateMonitorCounters* counters) :
! _nmethod_cl(NMethodSweeper::prepare_mark_active_nmethods()), _counters(counters) {}
void do_thread(Thread* thread) {
! ObjectSynchronizer::deflate_thread_local_monitors(thread, _counters);
if (_nmethod_cl != NULL && thread->is_Java_thread() &&
! thread->is_Code_cache_sweeper_thread()) {
JavaThread* jt = (JavaThread*) thread;
jt->nmethods_do(_nmethod_cl);
}
< prev index next >