|
48 | 48 | class G1BarrierSetC1; |
49 | 49 | class G1BarrierSetC2; |
50 | 50 |
|
51 | | -G1SATBMarkQueueSet G1BarrierSet::_satb_mark_queue_set; |
52 | | -DirtyCardQueueSet G1BarrierSet::_dirty_card_queue_set; |
53 | | - |
54 | 51 | G1BarrierSet::G1BarrierSet(G1CardTable* card_table) : |
55 | 52 | CardTableBarrierSet(make_barrier_set_assembler<G1BarrierSetAssembler>(), |
56 | 53 | make_barrier_set_c1<G1BarrierSetC1>(), |
57 | 54 | make_barrier_set_c2<G1BarrierSetC2>(), |
58 | 55 | card_table, |
59 | | - BarrierSet::FakeRtti(BarrierSet::G1BarrierSet)) {} |
| 56 | + BarrierSet::FakeRtti(BarrierSet::G1BarrierSet)), |
| 57 | + _satb_mark_queue_set(), |
| 58 | + _dirty_card_queue_set() |
| 59 | +{} |
60 | 60 |
|
61 | 61 | void G1BarrierSet::enqueue(oop pre_val) { |
62 | 62 | // Nulls should have been already filtered. |
63 | 63 | assert(oopDesc::is_oop(pre_val, true), "Error"); |
64 | 64 |
|
65 | | - if (!_satb_mark_queue_set.is_active()) return; |
| 65 | + G1SATBMarkQueueSet& queue_set = satb_mark_queue_set(); |
| 66 | + if (!queue_set.is_active()) { |
| 67 | + return; |
| 68 | + } |
66 | 69 | Thread* thr = Thread::current(); |
67 | 70 | if (thr->is_Java_thread()) { |
68 | 71 | G1ThreadLocalData::satb_mark_queue(thr).enqueue(pre_val); |
69 | 72 | } else { |
70 | 73 | MutexLockerEx x(Shared_SATB_Q_lock, Mutex::_no_safepoint_check_flag); |
71 | | - _satb_mark_queue_set.shared_satb_queue()->enqueue(pre_val); |
| 74 | + queue_set.shared_satb_queue()->enqueue(pre_val); |
72 | 75 | } |
73 | 76 | } |
74 | 77 |
|
|
0 commit comments