33 *
34 * The relationship of the GCs:
35 *
36 * ("normal" mode) ----> Concurrent GC ----> (finish)
37 * |
38 * | <upgrade>
39 * v
40 * ("passive" mode) ---> Degenerated GC ---> (finish)
41 * |
42 * | <upgrade>
43 * v
44 * Full GC --------> (finish)
45 */
46
47 class ShenandoahGC : public StackObj {
48 public:
49 // Fail point from concurrent GC
50 enum ShenandoahDegenPoint {
51 _degenerated_unset,
52 _degenerated_outside_cycle,
53 _degenerated_mark,
54 _degenerated_evac,
55 _degenerated_updaterefs,
56 _DEGENERATED_LIMIT
57 };
58
59 virtual bool collect(GCCause::Cause cause) = 0;
60 static const char* degen_point_to_string(ShenandoahDegenPoint point);
61
62 protected:
63 static void update_roots(bool full_gc);
64 };
65
66 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHGC_HPP
|
33 *
34 * The relationship of the GCs:
35 *
36 * ("normal" mode) ----> Concurrent GC ----> (finish)
37 * |
38 * | <upgrade>
39 * v
40 * ("passive" mode) ---> Degenerated GC ---> (finish)
41 * |
42 * | <upgrade>
43 * v
44 * Full GC --------> (finish)
45 */
46
47 class ShenandoahGC : public StackObj {
48 public:
49 // Fail point from concurrent GC
50 enum ShenandoahDegenPoint {
51 _degenerated_unset,
52 _degenerated_outside_cycle,
53 _degenerated_roots,
54 _degenerated_mark,
55 _degenerated_evac,
56 _degenerated_updaterefs,
57 _DEGENERATED_LIMIT
58 };
59
60 virtual bool collect(GCCause::Cause cause) = 0;
61 static const char* degen_point_to_string(ShenandoahDegenPoint point);
62
63 protected:
64 static void update_roots(bool full_gc);
65 };
66
67 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHGC_HPP
|