mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Wait for device-bringup inside domain_start, outside the scope of the
domains_lock. This makes the VM.start call blocking, but allows xm list to work while it is blocked. Move the handling of start_paused out of XendDomainInfo.start as part of this. Signed-off-by: Ewan Mellor <ewan@xensource.com>
This commit is contained in:
1 parent
592da6d9ee
commit
ea3b5838d8
2 files changed
+5
-4
No files matched your search
@@ -908,10 +908,13 @@ class XendDomain:
|
||||
if dominfo.state != DOM_STATE_HALTED:
|
||||
raise XendError("Domain is already running")
|
||||
|
||||
dominfo.start(is_managed = True, start_paused = start_paused)
|
||||
dominfo.start(is_managed = True)
|
||||
self._add_domain(dominfo)
|
||||
finally:
|
||||
self.domains_lock.release()
|
||||
dominfo.waitForDevices()
|
||||
if not start_paused:
|
||||
dominfo.unpause()
|
||||
|
||||
|
||||
def domain_delete(self, domid):
|
||||
|
||||
@@ -425,7 +425,7 @@ class XendDomainInfo:
|
||||
#
|
||||
|
||||
|
||||
def start(self, is_managed = False, start_paused = True):
|
||||
def start(self, is_managed = False):
|
||||
"""Attempts to start the VM by do the appropriate
|
||||
initialisation if it not started.
|
||||
"""
|
||||
@@ -439,8 +439,6 @@ class XendDomainInfo:
|
||||
self._storeDomDetails()
|
||||
self._registerWatches()
|
||||
self.refreshShutdown()
|
||||
if not start_paused:
|
||||
self.unpause()
|
||||
|
||||
# save running configuration if XendDomains believe domain is
|
||||
# persistent
|
||||
|
||||