202 Universe::heap()->prepare_for_verify();
203 Universe::verify();
204 }
205
206 bool VM_PrintThreads::doit_prologue() {
207 // Make sure AbstractOwnableSynchronizer is loaded
208 JavaThread* jt = JavaThread::current();
209 java_util_concurrent_locks_AbstractOwnableSynchronizer::initialize(jt);
210 if (jt->has_pending_exception()) {
211 return false;
212 }
213
214 // Get Heap_lock if concurrent locks will be dumped
215 if (_print_concurrent_locks) {
216 Heap_lock->lock();
217 }
218 return true;
219 }
220
221 void VM_PrintThreads::doit() {
222 Threads::print_on(_out, true, false, _print_concurrent_locks);
223 }
224
225 void VM_PrintThreads::doit_epilogue() {
226 if (_print_concurrent_locks) {
227 // Release Heap_lock
228 Heap_lock->unlock();
229 }
230 }
231
232 void VM_PrintJNI::doit() {
233 JNIHandles::print_on(_out);
234 }
235
236 void VM_PrintMetadata::doit() {
237 MetaspaceUtils::print_report(_out, _scale, _flags);
238 }
239
240 VM_FindDeadlocks::~VM_FindDeadlocks() {
241 if (_deadlocks != NULL) {
242 DeadlockCycle* cycle = _deadlocks;
|
202 Universe::heap()->prepare_for_verify();
203 Universe::verify();
204 }
205
206 bool VM_PrintThreads::doit_prologue() {
207 // Make sure AbstractOwnableSynchronizer is loaded
208 JavaThread* jt = JavaThread::current();
209 java_util_concurrent_locks_AbstractOwnableSynchronizer::initialize(jt);
210 if (jt->has_pending_exception()) {
211 return false;
212 }
213
214 // Get Heap_lock if concurrent locks will be dumped
215 if (_print_concurrent_locks) {
216 Heap_lock->lock();
217 }
218 return true;
219 }
220
221 void VM_PrintThreads::doit() {
222 bool need_reset = false;
223 if (_extended_thread_info && FLAG_IS_DEFAULT(PrintExtendedThreadInfo) && !PrintExtendedThreadInfo) {
224 need_reset = true;
225 FLAG_SET_DEFAULT(PrintExtendedThreadInfo, true);
226 }
227
228 Threads::print_on(_out, true, false, _print_concurrent_locks);
229
230 if (need_reset) {
231 FLAG_SET_DEFAULT(PrintExtendedThreadInfo, false);
232 }
233 }
234
235 void VM_PrintThreads::doit_epilogue() {
236 if (_print_concurrent_locks) {
237 // Release Heap_lock
238 Heap_lock->unlock();
239 }
240 }
241
242 void VM_PrintJNI::doit() {
243 JNIHandles::print_on(_out);
244 }
245
246 void VM_PrintMetadata::doit() {
247 MetaspaceUtils::print_report(_out, _scale, _flags);
248 }
249
250 VM_FindDeadlocks::~VM_FindDeadlocks() {
251 if (_deadlocks != NULL) {
252 DeadlockCycle* cycle = _deadlocks;
|