35 class ShenandoahConcurrentThread: public ConcurrentGCThread {
36 friend class VMStructs;
37
38 private:
39 Monitor _full_gc_lock;
40
41 public:
42 void run_service();
43 void stop_service();
44
45 private:
46 volatile jbyte _do_full_gc;
47 volatile jbyte _graceful_shutdown;
48 GCCause::Cause _full_gc_cause;
49
50 void sleepBeforeNextCycle();
51
52 bool check_cancellation();
53 void service_normal_cycle();
54 void service_fullgc_cycle();
55
56 public:
57 // Constructor
58 ShenandoahConcurrentThread();
59 ~ShenandoahConcurrentThread();
60
61 // Printing
62 void print_on(outputStream* st) const;
63 void print() const;
64
65 void do_full_gc(GCCause::Cause cause);
66
67 bool try_set_full_gc();
68 void reset_full_gc();
69 bool is_full_gc();
70
71 char* name() const { return (char*)"ShenandoahConcurrentThread";}
72 void start();
73
74 void prepare_for_graceful_shutdown();
|
35 class ShenandoahConcurrentThread: public ConcurrentGCThread {
36 friend class VMStructs;
37
38 private:
39 Monitor _full_gc_lock;
40
41 public:
42 void run_service();
43 void stop_service();
44
45 private:
46 volatile jbyte _do_full_gc;
47 volatile jbyte _graceful_shutdown;
48 GCCause::Cause _full_gc_cause;
49
50 void sleepBeforeNextCycle();
51
52 bool check_cancellation();
53 void service_normal_cycle();
54 void service_fullgc_cycle();
55 void service_partial_cycle();
56
57 public:
58 // Constructor
59 ShenandoahConcurrentThread();
60 ~ShenandoahConcurrentThread();
61
62 // Printing
63 void print_on(outputStream* st) const;
64 void print() const;
65
66 void do_full_gc(GCCause::Cause cause);
67
68 bool try_set_full_gc();
69 void reset_full_gc();
70 bool is_full_gc();
71
72 char* name() const { return (char*)"ShenandoahConcurrentThread";}
73 void start();
74
75 void prepare_for_graceful_shutdown();
|