6766644: Redefinition of compiled method fails with assertion "Can not load classes with the Compiler thread"

Defer posting events from the compiler thread: use service thread

Reviewed-by: coleenp, dholmes, never, dcubed
This commit is contained in:
Keith McGuigan 2011-02-02 14:38:01 -05:00
parent 052aed6276
commit 8a44936bb0
21 changed files with 617 additions and 298 deletions

View file

@ -129,7 +129,7 @@ Mutex* HotCardCache_lock = NULL;
Monitor* GCTaskManager_lock = NULL;
Mutex* Management_lock = NULL;
Monitor* LowMemory_lock = NULL;
Monitor* Service_lock = NULL;
#define MAX_NUM_MUTEX 128
static Monitor * _mutex_array[MAX_NUM_MUTEX];
@ -203,7 +203,7 @@ void mutex_init() {
def(Patching_lock , Mutex , special, true ); // used for safepointing and code patching.
def(ObjAllocPost_lock , Monitor, special, false);
def(LowMemory_lock , Monitor, special, true ); // used for low memory detection
def(Service_lock , Monitor, special, true ); // used for service thread operations
def(JmethodIdCreation_lock , Mutex , leaf, true ); // used for creating jmethodIDs.
def(SystemDictionary_lock , Monitor, leaf, true ); // lookups done by VM thread