# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Node ID 97acbb7e2146b57025cd5426fddc912e5b180ea7
# Parent fb1291ffa26f0fec9d3b0d1b55a210b5ce2455ee
Move the actual call routed by do_legacy_api_with_uuid out of the scope of
the domains_lock. The call itself is already locking as necessary, and it
is important for domain_start to be able to release the lock across the scope
of waitForDevices.
Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
tools/python/xen/xend/XendDomain.py | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff -r fb1291ffa26f -r 97acbb7e2146 tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py Wed Dec 06 10:10:06 2006 +0000
+++ b/tools/python/xen/xend/XendDomain.py Wed Dec 06 10:12:39 2006 +0000
@@ -641,17 +641,22 @@ class XendDomain:
return (self.get_vm_with_dev_uuid(klass, dev_uuid) != None)
def do_legacy_api_with_uuid(self, fn, vm_uuid, *args, **kwargs):
+ dom = self.uuid_to_dom(vm_uuid)
+ fn(dom, *args, **kwargs)
+
+ def uuid_to_dom(self, vm_uuid):
self.domains_lock.acquire()
try:
for domid, dom in self.domains.items():
- if dom.get_uuid == vm_uuid:
- return fn(domid, *args, **kwargs)
+ if dom.get_uuid() == vm_uuid:
+ return domid
if vm_uuid in self.managed_domains:
domid = self.managed_domains[vm_uuid].getDomid()
- if domid == None:
- domid = self.managed_domains[vm_uuid].getName()
- return fn(domid, *args, **kwargs)
+ if domid is None:
+ return self.managed_domains[vm_uuid].getName()
+ else:
+ return domid
raise XendInvalidDomain("Domain does not exist")
finally:
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|