6820167: GCALotAtAllSafepoints + FullGCALot(ScavengeALot) options crash JVM

Short-circuit gc-a-lot attempts by non-JavaThreads; SkipGCALot c'tor to elide re-entrant gc-a-lot attempts.

Reviewed-by: apetrusenko, jcoomes, jmasa, kamg
This commit is contained in:
Y. Srinivas Ramakrishna 2009-06-11 12:40:00 -07:00
parent 46dcdf10e6
commit 9d9317de4c
5 changed files with 39 additions and 2 deletions

View file

@ -531,6 +531,7 @@ void VMThread::execute(VM_Operation* op) {
Thread* t = Thread::current();
if (!t->is_VM_thread()) {
SkipGCALot sgcalot(t); // avoid re-entrant attempts to gc-a-lot
// JavaThread or WatcherThread
t->check_for_valid_safepoint_state(true);