src/share/vm/runtime/thread.cpp
Print this page
rev 2691 : [mq]: g1-reference-processing
@@ -747,12 +747,13 @@
// GC Support
bool Thread::claim_oops_do_par_case(int strong_roots_parity) {
jint thread_parity = _oops_do_parity;
if (thread_parity != strong_roots_parity) {
jint res = Atomic::cmpxchg(strong_roots_parity, &_oops_do_parity, thread_parity);
- if (res == thread_parity) return true;
- else {
+ if (res == thread_parity) {
+ return true;
+ } else {
guarantee(res == strong_roots_parity, "Or else what?");
assert(SharedHeap::heap()->n_par_threads() > 0,
"Should only fail when parallel.");
return false;
}
@@ -3903,12 +3904,13 @@
if (p->claim_oops_do(is_par, cp)) {
p->oops_do(f, cf);
}
}
VMThread* vmt = VMThread::vm_thread();
- if (vmt->claim_oops_do(is_par, cp))
+ if (vmt->claim_oops_do(is_par, cp)) {
vmt->oops_do(f, cf);
+ }
}
#ifndef SERIALGC
// Used by ParallelScavenge
void Threads::create_thread_roots_tasks(GCTaskQueue* q) {