< prev index next >
src/share/vm/runtime/thread.cpp
Print this page
rev 13387 : [mq]: parallel_sp_cleaning.patch
*** 789,799 ****
active_handles()->oops_do(f);
// Do oop for ThreadShadow
f->do_oop((oop*)&_pending_exception);
handle_area()->oops_do(f);
if (MonitorInUseLists) {
! if (Universe::heap()->supports_per_thread_monitor_deflation()) {
ObjectSynchronizer::deflate_idle_monitors_and_oops_do(this, f);
} else {
ObjectSynchronizer::thread_local_used_oops_do(this, f);
}
}
--- 789,800 ----
active_handles()->oops_do(f);
// Do oop for ThreadShadow
f->do_oop((oop*)&_pending_exception);
handle_area()->oops_do(f);
if (MonitorInUseLists) {
! VM_Operation* op = VMThread::vm_operation();
! if (op != NULL && op->deflates_idle_monitors()) {
ObjectSynchronizer::deflate_idle_monitors_and_oops_do(this, f);
} else {
ObjectSynchronizer::thread_local_used_oops_do(this, f);
}
}
*** 4389,4403 ****
"Thread " PTR_FORMAT " has incorrect parity %d != %d", p2i(p), thread_parity, _thread_claim_parity);
}
}
#endif // ASSERT
! void Threads::possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf) {
int cp = Threads::thread_claim_parity();
ALL_JAVA_THREADS(p) {
if (p->claim_oops_do(is_par, cp)) {
p->oops_do(f, cf);
}
}
VMThread* vmt = VMThread::vm_thread();
if (vmt->claim_oops_do(is_par, cp)) {
vmt->oops_do(f, cf);
--- 4390,4411 ----
"Thread " PTR_FORMAT " has incorrect parity %d != %d", p2i(p), thread_parity, _thread_claim_parity);
}
}
#endif // ASSERT
! void Threads::possibly_parallel_oops_do(bool is_par, OopClosure* f, CodeBlobClosure* cf, CodeBlobClosure* nmethods_cl) {
! CodeBlobClosure* blobs;
! VM_Operation* op = VMThread::vm_operation();
! if (op != NULL && op->marks_nmethods()) {
! }
int cp = Threads::thread_claim_parity();
ALL_JAVA_THREADS(p) {
if (p->claim_oops_do(is_par, cp)) {
p->oops_do(f, cf);
+ if (nmethods_cl != NULL && ! p->is_Code_cache_sweeper_thread()) {
+ p->nmethods_do(nmethods_cl);
+ }
}
}
VMThread* vmt = VMThread::vm_thread();
if (vmt->claim_oops_do(is_par, cp)) {
vmt->oops_do(f, cf);
< prev index next >