equal
deleted
inserted
replaced
457 |
457 |
458 class VM_Exit: public VM_Operation { |
458 class VM_Exit: public VM_Operation { |
459 private: |
459 private: |
460 int _exit_code; |
460 int _exit_code; |
461 static volatile bool _vm_exited; |
461 static volatile bool _vm_exited; |
462 static Thread * _shutdown_thread; |
462 static Thread * volatile _shutdown_thread; |
463 static void wait_if_vm_exited(); |
463 static void wait_if_vm_exited(); |
464 public: |
464 public: |
465 VM_Exit(int exit_code) { |
465 VM_Exit(int exit_code) { |
466 _exit_code = exit_code; |
466 _exit_code = exit_code; |
467 } |
467 } |
468 static int wait_for_threads_in_native_to_block(); |
468 static int wait_for_threads_in_native_to_block(); |
469 static int set_vm_exited(); |
469 static int set_vm_exited(); |
470 static bool vm_exited() { return _vm_exited; } |
470 static bool vm_exited() { return _vm_exited; } |
|
471 static Thread * shutdown_thread() { return _shutdown_thread; } |
471 static void block_if_vm_exited() { |
472 static void block_if_vm_exited() { |
472 if (_vm_exited) { |
473 if (_vm_exited) { |
473 wait_if_vm_exited(); |
474 wait_if_vm_exited(); |
474 } |
475 } |
475 } |
476 } |