Mercurial > hg > truffle
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(); |