< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
Print this page
rev 53870 : imported patch shade-shenandoah-ptrqueue
*** 225,243 ****
ShenandoahSATBThreadsClosure(ShenandoahSATBBufferClosure* satb_cl) :
_satb_cl(satb_cl),
_thread_parity(Threads::thread_claim_parity()) {}
void do_thread(Thread* thread) {
- if (thread->is_Java_thread()) {
if (thread->claim_oops_do(true, _thread_parity)) {
! JavaThread* jt = (JavaThread*)thread;
! ShenandoahThreadLocalData::satb_mark_queue(jt).apply_closure_and_empty(_satb_cl);
! }
! } else if (thread->is_VM_thread()) {
! if (thread->claim_oops_do(true, _thread_parity)) {
! ShenandoahBarrierSet::satb_mark_queue_set().shared_satb_queue()->apply_closure_and_empty(_satb_cl);
! }
}
}
};
class ShenandoahFinalMarkingTask : public AbstractGangTask {
--- 225,236 ----
ShenandoahSATBThreadsClosure(ShenandoahSATBBufferClosure* satb_cl) :
_satb_cl(satb_cl),
_thread_parity(Threads::thread_claim_parity()) {}
void do_thread(Thread* thread) {
if (thread->claim_oops_do(true, _thread_parity)) {
! ShenandoahThreadLocalData::satb_mark_queue(thread).apply_closure_and_empty(_satb_cl);
}
}
};
class ShenandoahFinalMarkingTask : public AbstractGangTask {
< prev index next >