83 fatal(ss.as_string());
84 }
85
86 void ShenandoahHeapRegion::make_regular_allocation() {
87 _heap->assert_heaplock_owned_by_current_thread();
88 switch (_state) {
89 case _empty_uncommitted:
90 do_commit();
91 case _empty_committed:
92 _state = _regular;
93 case _regular:
94 case _pinned:
95 return;
96 default:
97 report_illegal_transition("regular allocation");
98 }
99 }
100
101 void ShenandoahHeapRegion::make_regular_bypass() {
102 _heap->assert_heaplock_owned_by_current_thread();
103 assert (_heap->is_full_gc_in_progress(), "only for full GC");
104
105 switch (_state) {
106 case _empty_uncommitted:
107 do_commit();
108 case _empty_committed:
109 case _cset:
110 case _humongous_start:
111 case _humongous_cont:
112 _state = _regular;
113 return;
114 case _pinned_cset:
115 _state = _pinned;
116 return;
117 case _regular:
118 case _pinned:
119 return;
120 default:
121 report_illegal_transition("regular bypass");
122 }
123 }
|
83 fatal(ss.as_string());
84 }
85
86 void ShenandoahHeapRegion::make_regular_allocation() {
87 _heap->assert_heaplock_owned_by_current_thread();
88 switch (_state) {
89 case _empty_uncommitted:
90 do_commit();
91 case _empty_committed:
92 _state = _regular;
93 case _regular:
94 case _pinned:
95 return;
96 default:
97 report_illegal_transition("regular allocation");
98 }
99 }
100
101 void ShenandoahHeapRegion::make_regular_bypass() {
102 _heap->assert_heaplock_owned_by_current_thread();
103 assert (_heap->is_full_gc_in_progress() || _heap->is_degenerated_gc_in_progress(),
104 "only for full or degen GC");
105
106 switch (_state) {
107 case _empty_uncommitted:
108 do_commit();
109 case _empty_committed:
110 case _cset:
111 case _humongous_start:
112 case _humongous_cont:
113 _state = _regular;
114 return;
115 case _pinned_cset:
116 _state = _pinned;
117 return;
118 case _regular:
119 case _pinned:
120 return;
121 default:
122 report_illegal_transition("regular bypass");
123 }
124 }
|