Avoid infite loop while waiting vm to shutdown
This commit is contained in:
parent
4bb156e061
commit
4d68b64a3a
@ -1261,13 +1261,14 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QMainWindow):
|
|||||||
QMessageBox.Yes | QMessageBox.Cancel)
|
QMessageBox.Yes | QMessageBox.Cancel)
|
||||||
|
|
||||||
if reply == QMessageBox.Yes:
|
if reply == QMessageBox.Yes:
|
||||||
|
for connected_vm in connected_vms:
|
||||||
|
if not self.shutdown_vm(connected_vm):
|
||||||
|
return False
|
||||||
with common_threads.busy_cursor():
|
with common_threads.busy_cursor():
|
||||||
for connected_vm in connected_vms:
|
while connected_vm.is_running():
|
||||||
self.shutdown_vm(connected_vm)
|
time.sleep(0.5)
|
||||||
while connected_vm.is_running():
|
|
||||||
time.sleep(0.5)
|
|
||||||
else:
|
else:
|
||||||
return
|
return False
|
||||||
|
|
||||||
vm.shutdown()
|
vm.shutdown()
|
||||||
except exc.QubesException as ex:
|
except exc.QubesException as ex:
|
||||||
@ -1275,7 +1276,7 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QMainWindow):
|
|||||||
self,
|
self,
|
||||||
self.tr("Error shutting down Qube!"),
|
self.tr("Error shutting down Qube!"),
|
||||||
self.tr("ERROR: {0}").format(ex))
|
self.tr("ERROR: {0}").format(ex))
|
||||||
return
|
return False
|
||||||
|
|
||||||
self.shutdown_monitor[vm.qid] = VmShutdownMonitor(vm, shutdown_time,
|
self.shutdown_monitor[vm.qid] = VmShutdownMonitor(vm, shutdown_time,
|
||||||
check_time,
|
check_time,
|
||||||
@ -1284,6 +1285,8 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QMainWindow):
|
|||||||
QTimer.singleShot(check_time, self.shutdown_monitor[
|
QTimer.singleShot(check_time, self.shutdown_monitor[
|
||||||
vm.qid].check_if_vm_has_shutdown)
|
vm.qid].check_if_vm_has_shutdown)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
# noinspection PyArgumentList
|
# noinspection PyArgumentList
|
||||||
@pyqtSlot(name='on_action_restartvm_triggered')
|
@pyqtSlot(name='on_action_restartvm_triggered')
|
||||||
def action_restartvm_triggered(self):
|
def action_restartvm_triggered(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user