73
74 public:
75 // Constructor
76 ConcurrentMarkSweepThread(CMSCollector* collector);
77
78 static void makeSurrogateLockerThread(TRAPS);
79 static SurrogateLockerThread* slt() { return _slt; }
80
81 static void threads_do(ThreadClosure* tc);
82
83 // Printing
84 static void print_all_on(outputStream* st);
85 static void print_all() { print_all_on(tty); }
86
87 // Returns the CMS Thread
88 static ConcurrentMarkSweepThread* cmst() { return _cmst; }
89 static CMSCollector* collector() { return _collector; }
90
91 // Create and start the CMS Thread, or stop it on shutdown
92 static ConcurrentMarkSweepThread* start(CMSCollector* collector);
93 static void stop_all();
94
95 // Synchronization using CMS token
96 static void synchronize(bool is_cms_thread);
97 static void desynchronize(bool is_cms_thread);
98 static bool vm_thread_has_cms_token() {
99 return CMS_flag_is_set(CMS_vm_has_token);
100 }
101 static bool cms_thread_has_cms_token() {
102 return CMS_flag_is_set(CMS_cms_has_token);
103 }
104 static bool vm_thread_wants_cms_token() {
105 return CMS_flag_is_set(CMS_vm_wants_token);
106 }
107 static bool cms_thread_wants_cms_token() {
108 return CMS_flag_is_set(CMS_cms_wants_token);
109 }
110
111 // Wait on CMS lock until the next synchronous GC
112 // or given timeout, whichever is earlier. A timeout value
113 // of 0 indicates that there is no upper bound on the wait time.
|
73
74 public:
75 // Constructor
76 ConcurrentMarkSweepThread(CMSCollector* collector);
77
78 static void makeSurrogateLockerThread(TRAPS);
79 static SurrogateLockerThread* slt() { return _slt; }
80
81 static void threads_do(ThreadClosure* tc);
82
83 // Printing
84 static void print_all_on(outputStream* st);
85 static void print_all() { print_all_on(tty); }
86
87 // Returns the CMS Thread
88 static ConcurrentMarkSweepThread* cmst() { return _cmst; }
89 static CMSCollector* collector() { return _collector; }
90
91 // Create and start the CMS Thread, or stop it on shutdown
92 static ConcurrentMarkSweepThread* start(CMSCollector* collector);
93
94 // Synchronization using CMS token
95 static void synchronize(bool is_cms_thread);
96 static void desynchronize(bool is_cms_thread);
97 static bool vm_thread_has_cms_token() {
98 return CMS_flag_is_set(CMS_vm_has_token);
99 }
100 static bool cms_thread_has_cms_token() {
101 return CMS_flag_is_set(CMS_cms_has_token);
102 }
103 static bool vm_thread_wants_cms_token() {
104 return CMS_flag_is_set(CMS_vm_wants_token);
105 }
106 static bool cms_thread_wants_cms_token() {
107 return CMS_flag_is_set(CMS_cms_wants_token);
108 }
109
110 // Wait on CMS lock until the next synchronous GC
111 // or given timeout, whichever is earlier. A timeout value
112 // of 0 indicates that there is no upper bound on the wait time.
|