Request for review, 6766644: Redefinition of compiled method fails with assertion "Can not load classes with the Compiler thread"
Keith McGuigan
keith.mcguigan at oracle.com
Tue Jan 25 08:49:01 PST 2011
Hello,
This code modifies the way that JVMTI compiled-method-load events are
posted. Previously, they were posted directly from the compiler
thread, which could cause issues if the JVMTI event handling code made
calls to RedefineClasses, since the compiler thread is unable to load
classes if that is required. This solution is to defer the posting of
the events to the Service thread (formerly: LowMemoryDetector thread)
which is a Java thread and is able to load classes.
The "Service thread" now handles both low-memory detection and JVMTI
deferred event posting. I left the door open for other types of
events to be deferred and posted via this mechanism in case we find
other situations where posting events from a non-Java thread causes
problems.
webrev: http://cr.openjdk.java.net/~kamg/6766644/webrev.01/
--
- Keith
More information about the serviceability-dev
mailing list