442 bool with_locked_synchronizers);
443
444 VM_ThreadDump(ThreadDumpResult* result,
445 GrowableArray<instanceHandle>* threads,
446 int num_threads, // -1 indicates entire stack
447 int max_depth,
448 bool with_locked_monitors,
449 bool with_locked_synchronizers);
450
451 VMOp_Type type() const { return VMOp_ThreadDump; }
452 void doit();
453 bool doit_prologue();
454 void doit_epilogue();
455 };
456
457
458 class VM_Exit: public VM_Operation {
459 private:
460 int _exit_code;
461 static volatile bool _vm_exited;
462 static Thread * _shutdown_thread;
463 static void wait_if_vm_exited();
464 public:
465 VM_Exit(int exit_code) {
466 _exit_code = exit_code;
467 }
468 static int wait_for_threads_in_native_to_block();
469 static int set_vm_exited();
470 static bool vm_exited() { return _vm_exited; }
471 static void block_if_vm_exited() {
472 if (_vm_exited) {
473 wait_if_vm_exited();
474 }
475 }
476 VMOp_Type type() const { return VMOp_Exit; }
477 void doit();
478 };
479
480 class VM_PrintCompileQueue: public VM_Operation {
481 private:
482 outputStream* _out;
483
484 public:
485 VM_PrintCompileQueue(outputStream* st) : _out(st) {}
486 VMOp_Type type() const { return VMOp_PrintCompileQueue; }
487 Mode evaluation_mode() const { return _safepoint; }
488 void doit();
489 };
|
442 bool with_locked_synchronizers);
443
444 VM_ThreadDump(ThreadDumpResult* result,
445 GrowableArray<instanceHandle>* threads,
446 int num_threads, // -1 indicates entire stack
447 int max_depth,
448 bool with_locked_monitors,
449 bool with_locked_synchronizers);
450
451 VMOp_Type type() const { return VMOp_ThreadDump; }
452 void doit();
453 bool doit_prologue();
454 void doit_epilogue();
455 };
456
457
458 class VM_Exit: public VM_Operation {
459 private:
460 int _exit_code;
461 static volatile bool _vm_exited;
462 static Thread * volatile _shutdown_thread;
463 static void wait_if_vm_exited();
464 public:
465 VM_Exit(int exit_code) {
466 _exit_code = exit_code;
467 }
468 static int wait_for_threads_in_native_to_block();
469 static int set_vm_exited();
470 static void set_shutdown_thread(Thread *t) { _shutdown_thread = t; }
471 static Thread * shutdown_thread() { return _shutdown_thread; }
472 static bool vm_exited() { return _vm_exited; }
473 static void block_if_vm_exited() {
474 if (_vm_exited) {
475 wait_if_vm_exited();
476 }
477 }
478 VMOp_Type type() const { return VMOp_Exit; }
479 void doit();
480 };
481
482 class VM_PrintCompileQueue: public VM_Operation {
483 private:
484 outputStream* _out;
485
486 public:
487 VM_PrintCompileQueue(outputStream* st) : _out(st) {}
488 VMOp_Type type() const { return VMOp_PrintCompileQueue; }
489 Mode evaluation_mode() const { return _safepoint; }
490 void doit();
491 };
|