src/hotspot/share/runtime/vm_operations.hpp
changeset 49636 6d5bd76650df
parent 49323 565336327354
child 49980 57dd7b4ba338
equal deleted inserted replaced
49635:e79bbf1635da 49636:6d5bd76650df
   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   }