docs: public static void terminateVM(VirtualMachineError e) {
          if(e == null) {
              throw new IllegalArgumentException("e == null");
          }
          if(terminating) {
              return;
          }
          // Ordering is important - these fields are volatile; we must first
          // set terminationCause and only after that terminating so that
          // checkTerminating() never observes (terminating==true &&
          // terminationCause == null)
          terminationCause = e;
          synchronized(lock) {
              terminating = true;
              lock.notify();
          }
      }