comparison src/share/vm/prims/jvmtiTagMap.cpp @ 2145:c1a0ede55d6f

7012493: 2/2 6849574/Test.java fails with Internal Error (src/share/vm/prims/jvmtiTagMap.cpp:3294) Summary: Refine assertion to work before VMThread has started. Reviewed-by: ysr, never, dholmes, acorn
author dcubed
date Wed, 19 Jan 2011 07:41:39 -0800
parents 7246a374a9f2
children 3582bf76420e
comparison
equal deleted inserted replaced
2144:633a44a9fc45 2145:c1a0ede55d6f
3288 VMThread::execute(&op); 3288 VMThread::execute(&op);
3289 } 3289 }
3290 3290
3291 3291
3292 void JvmtiTagMap::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) { 3292 void JvmtiTagMap::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
3293 assert(SafepointSynchronize::is_at_safepoint(), 3293 // No locks during VM bring-up (0 threads) and no safepoints after main
3294 // thread creation and before VMThread creation (1 thread); initial GC
3295 // verification can happen in that window which gets to here.
3296 assert(Threads::number_of_threads() <= 1 ||
3297 SafepointSynchronize::is_at_safepoint(),
3294 "must be executed at a safepoint"); 3298 "must be executed at a safepoint");
3295 if (JvmtiEnv::environments_might_exist()) { 3299 if (JvmtiEnv::environments_might_exist()) {
3296 JvmtiEnvIterator it; 3300 JvmtiEnvIterator it;
3297 for (JvmtiEnvBase* env = it.first(); env != NULL; env = it.next(env)) { 3301 for (JvmtiEnvBase* env = it.first(); env != NULL; env = it.next(env)) {
3298 JvmtiTagMap* tag_map = env->tag_map(); 3302 JvmtiTagMap* tag_map = env->tag_map();