mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-24 05:14:52 +02:00
8023461: Thread holding lock at safepoint that vm can block on: MethodCompileQueue_lock
Reviewed-by: kvn, iveresov
This commit is contained in:
parent
54db2c2d61
commit
38d80b03c4
5 changed files with 86 additions and 33 deletions
|
@ -196,7 +196,11 @@ class CompileQueue : public CHeapObj<mtCompiler> {
|
|||
CompileTask* _first;
|
||||
CompileTask* _last;
|
||||
|
||||
CompileTask* _first_stale;
|
||||
|
||||
int _size;
|
||||
|
||||
void purge_stale_tasks();
|
||||
public:
|
||||
CompileQueue(const char* name, Monitor* lock) {
|
||||
_name = name;
|
||||
|
@ -204,6 +208,7 @@ class CompileQueue : public CHeapObj<mtCompiler> {
|
|||
_first = NULL;
|
||||
_last = NULL;
|
||||
_size = 0;
|
||||
_first_stale = NULL;
|
||||
}
|
||||
|
||||
const char* name() const { return _name; }
|
||||
|
@ -211,6 +216,7 @@ class CompileQueue : public CHeapObj<mtCompiler> {
|
|||
|
||||
void add(CompileTask* task);
|
||||
void remove(CompileTask* task);
|
||||
void remove_and_mark_stale(CompileTask* task);
|
||||
CompileTask* first() { return _first; }
|
||||
CompileTask* last() { return _last; }
|
||||
|
||||
|
@ -219,6 +225,7 @@ class CompileQueue : public CHeapObj<mtCompiler> {
|
|||
bool is_empty() const { return _first == NULL; }
|
||||
int size() const { return _size; }
|
||||
|
||||
|
||||
// Redefine Classes support
|
||||
void mark_on_stack();
|
||||
void free_all();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue