def exec
      result = method_missing(:exec)
      disable_threading()
      self.dispose
      Qt::Internal.application_terminated = true
      result
    end
def exec
      result = method_missing(:exec)
      disable_threading()
      self.dispose
      Qt::Internal.application_terminated = true
      result
    end
Delete the underlying C++ instance after exec returns
 Otherwise, rb_gc_call_finalizer_at_exit() can delete
 stuff that Qt::Application still needs for its cleanup.