374 VM_PrintThreads() { _out = tty; _print_concurrent_locks = PrintConcurrentLocks; }
375 VM_PrintThreads(outputStream* out, bool print_concurrent_locks) { _out = out; _print_concurrent_locks = print_concurrent_locks; }
376 VMOp_Type type() const { return VMOp_PrintThreads; }
377 void doit();
378 bool doit_prologue();
379 void doit_epilogue();
380 };
381
382 class VM_PrintJNI: public VM_Operation {
383 private:
384 outputStream* _out;
385 public:
386 VM_PrintJNI() { _out = tty; }
387 VM_PrintJNI(outputStream* out) { _out = out; }
388 VMOp_Type type() const { return VMOp_PrintJNI; }
389 void doit();
390 };
391
392 class VM_PrintMetadata : public VM_Operation {
393 private:
394 outputStream* _out;
395 size_t _scale;
396 public:
397 VM_PrintMetadata(outputStream* out, size_t scale) : _out(out), _scale(scale) {};
398
399 VMOp_Type type() const { return VMOp_PrintMetadata; }
400 void doit();
401 };
402
403 class DeadlockCycle;
404 class VM_FindDeadlocks: public VM_Operation {
405 private:
406 bool _concurrent_locks;
407 DeadlockCycle* _deadlocks;
408 outputStream* _out;
409 ThreadsListSetter _setter; // Helper to set hazard ptr in the originating thread
410 // which protects the JavaThreads in _deadlocks.
411
412 public:
413 VM_FindDeadlocks(bool concurrent_locks) : _concurrent_locks(concurrent_locks), _out(NULL), _deadlocks(NULL), _setter() {};
414 VM_FindDeadlocks(outputStream* st) : _concurrent_locks(true), _out(st), _deadlocks(NULL) {};
415 ~VM_FindDeadlocks();
416
417 DeadlockCycle* result() { return _deadlocks; };
|
374 VM_PrintThreads() { _out = tty; _print_concurrent_locks = PrintConcurrentLocks; }
375 VM_PrintThreads(outputStream* out, bool print_concurrent_locks) { _out = out; _print_concurrent_locks = print_concurrent_locks; }
376 VMOp_Type type() const { return VMOp_PrintThreads; }
377 void doit();
378 bool doit_prologue();
379 void doit_epilogue();
380 };
381
382 class VM_PrintJNI: public VM_Operation {
383 private:
384 outputStream* _out;
385 public:
386 VM_PrintJNI() { _out = tty; }
387 VM_PrintJNI(outputStream* out) { _out = out; }
388 VMOp_Type type() const { return VMOp_PrintJNI; }
389 void doit();
390 };
391
392 class VM_PrintMetadata : public VM_Operation {
393 private:
394 outputStream* const _out;
395 const size_t _scale;
396 const int _flags;
397
398 public:
399 VM_PrintMetadata(outputStream* out, size_t scale, int flags)
400 : _out(out), _scale(scale), _flags(flags)
401 {};
402
403 VMOp_Type type() const { return VMOp_PrintMetadata; }
404 void doit();
405 };
406
407 class DeadlockCycle;
408 class VM_FindDeadlocks: public VM_Operation {
409 private:
410 bool _concurrent_locks;
411 DeadlockCycle* _deadlocks;
412 outputStream* _out;
413 ThreadsListSetter _setter; // Helper to set hazard ptr in the originating thread
414 // which protects the JavaThreads in _deadlocks.
415
416 public:
417 VM_FindDeadlocks(bool concurrent_locks) : _concurrent_locks(concurrent_locks), _out(NULL), _deadlocks(NULL), _setter() {};
418 VM_FindDeadlocks(outputStream* st) : _concurrent_locks(true), _out(st), _deadlocks(NULL) {};
419 ~VM_FindDeadlocks();
420
421 DeadlockCycle* result() { return _deadlocks; };
|