178
179 char* current_method() { return _current_method; }
180
181 void set_compile_type(int compile_type) {
182 _compile_type = compile_type;
183 if (UsePerfData) _perf_compile_type->set_value((jlong)compile_type);
184 }
185
186 int compile_type() { return _compile_type; }
187
188 PerfCounter* time_counter() { return _perf_time; }
189 PerfCounter* compile_counter() { return _perf_compiles; }
190 };
191
192 // CompileQueue
193 //
194 // A list of CompileTasks.
195 class CompileQueue : public CHeapObj<mtCompiler> {
196 private:
197 const char* _name;
198 Monitor* _lock;
199
200 CompileTask* _first;
201 CompileTask* _last;
202
203 CompileTask* _first_stale;
204
205 int _size;
206
207 void purge_stale_tasks();
208 public:
209 CompileQueue(const char* name, Monitor* lock) {
210 _name = name;
211 _lock = lock;
212 _first = NULL;
213 _last = NULL;
214 _size = 0;
215 _first_stale = NULL;
216 }
217
218 const char* name() const { return _name; }
219 Monitor* lock() const { return _lock; }
220
221 void add(CompileTask* task);
222 void remove(CompileTask* task);
223 void remove_and_mark_stale(CompileTask* task);
224 CompileTask* first() { return _first; }
225 CompileTask* last() { return _last; }
226
227 CompileTask* get();
228
229 bool is_empty() const { return _first == NULL; }
230 int size() const { return _size; }
231
232
233 // Redefine Classes support
234 void mark_on_stack();
235 void free_all();
236 void print_tty();
237 void print(outputStream* st = tty);
238
239 ~CompileQueue() {
|
178
179 char* current_method() { return _current_method; }
180
181 void set_compile_type(int compile_type) {
182 _compile_type = compile_type;
183 if (UsePerfData) _perf_compile_type->set_value((jlong)compile_type);
184 }
185
186 int compile_type() { return _compile_type; }
187
188 PerfCounter* time_counter() { return _perf_time; }
189 PerfCounter* compile_counter() { return _perf_compiles; }
190 };
191
192 // CompileQueue
193 //
194 // A list of CompileTasks.
195 class CompileQueue : public CHeapObj<mtCompiler> {
196 private:
197 const char* _name;
198
199 CompileTask* _first;
200 CompileTask* _last;
201
202 CompileTask* _first_stale;
203
204 int _size;
205
206 void purge_stale_tasks();
207 public:
208 CompileQueue(const char* name) {
209 _name = name;
210 _first = NULL;
211 _last = NULL;
212 _size = 0;
213 _first_stale = NULL;
214 }
215
216 const char* name() const { return _name; }
217
218 void add(CompileTask* task);
219 void remove(CompileTask* task);
220 void remove_and_mark_stale(CompileTask* task);
221 CompileTask* first() { return _first; }
222 CompileTask* last() { return _last; }
223
224 CompileTask* get();
225
226 bool is_empty() const { return _first == NULL; }
227 int size() const { return _size; }
228
229
230 // Redefine Classes support
231 void mark_on_stack();
232 void free_all();
233 void print_tty();
234 void print(outputStream* st = tty);
235
236 ~CompileQueue() {
|