On 16.06.2015 19:43, Peter Krempa wrote:
Add testDomObjFromDomainLocked and reuse it together with
testDomObjFromDomain to retrieve domain objects in the qemu driver
s/qemu/test/
instead of open-coding it in every API.
---
src/test/test_driver.c | 409 +++++++++++--------------------------------------
1 file changed, 92 insertions(+), 317 deletions(-)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 6613ed7..dc6e49a 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -477,13 +477,12 @@ static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr
pool);
static int testNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
static virDomainObjPtr
-testDomObjFromDomain(virDomainPtr domain)
+testDomObjFromDomainLocked(testConnPtr driver,
+ virDomainPtr domain)
{
virDomainObjPtr vm;
- testConnPtr driver = domain->conn->privateData;
char uuidstr[VIR_UUID_STRING_BUFLEN];
- testDriverLock(driver);
vm = virDomainObjListFindByUUIDRef(driver->domains, domain->uuid);
if (!vm) {
virUUIDFormat(domain->uuid, uuidstr);
@@ -492,10 +491,22 @@ testDomObjFromDomain(virDomainPtr domain)
uuidstr, domain->name);
}
- testDriverUnlock(driver);
return vm;
}
+static virDomainObjPtr
+testDomObjFromDomain(virDomainPtr domain)
+{
+ testConnPtr driver = domain->conn->privateData;
+ virDomainObjPtr ret;
+
+ testDriverLock(driver);
+ ret = testDomObjFromDomainLocked(driver, domain);
+ testDriverUnlock(driver);
+
+ return ret;
+}
+
I don't think this is necessary. As I've said in the previous e-mail -
domainObjList has self-locking APIs. And the driver->domains is
immutable pointer. Or am I missing something?
ACK to the rest though.
Michal