equal
deleted
inserted
replaced
99 bool _concurrent; |
99 bool _concurrent; |
100 public: |
100 public: |
101 RefineCardTableEntryClosure() : _concurrent(true) { } |
101 RefineCardTableEntryClosure() : _concurrent(true) { } |
102 |
102 |
103 bool do_card_ptr(jbyte* card_ptr, uint worker_i) { |
103 bool do_card_ptr(jbyte* card_ptr, uint worker_i) { |
104 bool oops_into_cset = G1CollectedHeap::heap()->g1_rem_set()->refine_card(card_ptr, worker_i, NULL); |
104 G1CollectedHeap::heap()->g1_rem_set()->refine_card_concurrently(card_ptr, worker_i); |
105 // This path is executed by the concurrent refine or mutator threads, |
|
106 // concurrently, and so we do not care if card_ptr contains references |
|
107 // that point into the collection set. |
|
108 assert(!oops_into_cset, "should be"); |
|
109 |
105 |
110 if (_concurrent && SuspendibleThreadSet::should_yield()) { |
106 if (_concurrent && SuspendibleThreadSet::should_yield()) { |
111 // Caller will actually yield. |
107 // Caller will actually yield. |
112 return false; |
108 return false; |
113 } |
109 } |