< prev index next >

src/share/vm/services/threadService.cpp

Print this page

        

*** 164,173 **** --- 164,174 ---- obj = (oop) enter_obj->object(); } // If obj == NULL, then ObjectMonitor is raw which doesn't count. } + obj = oopDesc::bs()->write_barrier(obj); Handle h(obj); return h; } bool ThreadService::set_thread_monitoring_contention(bool flag) {
*** 587,604 **** --- 588,608 ---- bool ThreadStackTrace::is_owned_monitor_on_stack(oop object) { assert(SafepointSynchronize::is_at_safepoint(), "all threads are stopped"); + object = oopDesc::bs()->write_barrier(object); + bool found = false; int num_frames = get_stack_depth(); for (int depth = 0; depth < num_frames; depth++) { StackFrameInfo* frame = stack_frame_at(depth); int len = frame->num_locked_monitors(); GrowableArray<oop>* locked_monitors = frame->locked_monitors(); for (int j = 0; j < len; j++) { oop monitor = locked_monitors->at(j); + monitor = oopDesc::bs()->write_barrier(monitor); assert(monitor != NULL, "must be a Java object"); if (monitor == object) { found = true; break; }
< prev index next >