equal
deleted
inserted
replaced
1900 } |
1900 } |
1901 ShenandoahBarrierSet::satb_mark_queue_set().set_active_all_threads(in_progress, !in_progress); |
1901 ShenandoahBarrierSet::satb_mark_queue_set().set_active_all_threads(in_progress, !in_progress); |
1902 } |
1902 } |
1903 |
1903 |
1904 void ShenandoahHeap::set_concurrent_traversal_in_progress(bool in_progress) { |
1904 void ShenandoahHeap::set_concurrent_traversal_in_progress(bool in_progress) { |
1905 set_gc_state_mask(TRAVERSAL | HAS_FORWARDED | UPDATEREFS, in_progress); |
1905 set_gc_state_mask(TRAVERSAL, in_progress); |
1906 ShenandoahBarrierSet::satb_mark_queue_set().set_active_all_threads(in_progress, !in_progress); |
1906 ShenandoahBarrierSet::satb_mark_queue_set().set_active_all_threads(in_progress, !in_progress); |
1907 } |
1907 } |
1908 |
1908 |
1909 void ShenandoahHeap::set_evacuation_in_progress(bool in_progress) { |
1909 void ShenandoahHeap::set_evacuation_in_progress(bool in_progress) { |
1910 assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Only call this at safepoint"); |
1910 assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Only call this at safepoint"); |
2058 stw_process_weak_roots(full_gc); |
2058 stw_process_weak_roots(full_gc); |
2059 stw_unload_classes(full_gc); |
2059 stw_unload_classes(full_gc); |
2060 } |
2060 } |
2061 |
2061 |
2062 void ShenandoahHeap::set_has_forwarded_objects(bool cond) { |
2062 void ShenandoahHeap::set_has_forwarded_objects(bool cond) { |
2063 set_gc_state_mask(HAS_FORWARDED, cond); |
2063 if (is_traversal_mode()) { |
|
2064 set_gc_state_mask(HAS_FORWARDED | UPDATEREFS, cond); |
|
2065 } else { |
|
2066 set_gc_state_mask(HAS_FORWARDED, cond); |
|
2067 } |
|
2068 |
2064 } |
2069 } |
2065 |
2070 |
2066 void ShenandoahHeap::set_process_references(bool pr) { |
2071 void ShenandoahHeap::set_process_references(bool pr) { |
2067 _process_references.set_cond(pr); |
2072 _process_references.set_cond(pr); |
2068 } |
2073 } |