#endif /* __APPLE__ */
};
-static void
-vmwareDriverLock(struct vmware_driver *driver)
-{
- virMutexLock(&driver->lock);
-}
-
-static void
-vmwareDriverUnlock(struct vmware_driver *driver)
-{
- virMutexUnlock(&driver->lock);
-}
-
-
static virDomainObj *
vmwareDomObjFromDomainLocked(struct vmware_driver *driver,
const unsigned char *uuid)
vmwareDomObjFromDomain(struct vmware_driver *driver,
const unsigned char *uuid)
{
- virDomainObj *vm;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
- vm = vmwareDomObjFromDomainLocked(driver, uuid);
- vmwareDriverUnlock(driver);
- return vm;
+ return vmwareDomObjFromDomainLocked(driver, uuid);
}
vmwareConnectGetVersion(virConnectPtr conn, unsigned long *version)
{
struct vmware_driver *driver = conn->privateData;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
*version = driver->version;
- vmwareDriverUnlock(driver);
return 0;
}
vmwareDomainPtr pDomain = NULL;
virVMXContext ctx;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL);
ctx.autodetectSCSIControllerModel = NULL;
ctx.datacenterPath = NULL;
- vmwareDriverLock(driver);
if ((vmdef = virDomainDefParseString(xml, driver->xmlopt,
NULL, parse_flags)) == NULL)
goto cleanup;
VIR_FREE(vmxPath);
if (vm)
virObjectUnlock(vm);
- vmwareDriverUnlock(driver);
return dom;
}
struct vmware_driver *driver = dom->conn->privateData;
virDomainObj *vm;
int ret = -1;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
virCheckFlags(0, -1);
- vmwareDriverLock(driver);
-
if (!(vm = vmwareDomObjFromDomainLocked(driver, dom->uuid)))
goto cleanup;
ret = 0;
cleanup:
virDomainObjEndAPI(&vm);
- vmwareDriverUnlock(driver);
return ret;
}
vmwareDomainPtr pDomain = NULL;
virVMXContext ctx;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
virCheckFlags(VIR_DOMAIN_START_VALIDATE, NULL);
ctx.autodetectSCSIControllerModel = NULL;
ctx.datacenterPath = NULL;
- vmwareDriverLock(driver);
-
if ((vmdef = virDomainDefParseString(xml, driver->xmlopt,
NULL, parse_flags)) == NULL)
goto cleanup;
VIR_FREE(vmx);
VIR_FREE(vmxPath);
virDomainObjEndAPI(&vm);
- vmwareDriverUnlock(driver);
return dom;
}
struct vmware_driver *driver = dom->conn->privateData;
virDomainObj *vm;
int ret = -1;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
virCheckFlags(0, -1);
- vmwareDriverLock(driver);
if (!(vm = vmwareDomObjFromDomainLocked(driver, dom->uuid)))
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
- vmwareDriverUnlock(driver);
return ret;
}
struct vmware_driver *driver = dom->conn->privateData;
virDomainObj *vm;
int ret = -1;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
virCheckFlags(0, -1);
- vmwareDriverLock(driver);
if (!(vm = vmwareDomObjFromDomainLocked(driver, dom->uuid)))
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
- vmwareDriverUnlock(driver);
return ret;
}
vmwareDomainLookupByID(virConnectPtr conn, int id)
{
struct vmware_driver *driver = conn->privateData;
- virDomainObj *vm;
+ virDomainObj *vm = NULL;
virDomainPtr dom = NULL;
- vmwareDriverLock(driver);
- vm = virDomainObjListFindByID(driver->domains, id);
- vmwareDriverUnlock(driver);
+ VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
+ vm = virDomainObjListFindByID(driver->domains, id);
+ }
if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN,
vmwareDomainLookupByName(virConnectPtr conn, const char *name)
{
struct vmware_driver *driver = conn->privateData;
- virDomainObj *vm;
+ virDomainObj *vm = NULL;
virDomainPtr dom = NULL;
- vmwareDriverLock(driver);
- vm = virDomainObjListFindByName(driver->domains, name);
- vmwareDriverUnlock(driver);
+ VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
+ vm = virDomainObjListFindByName(driver->domains, name);
+ }
if (!vm) {
virReportError(VIR_ERR_NO_DOMAIN,
vmwareConnectNumOfDefinedDomains(virConnectPtr conn)
{
struct vmware_driver *driver = conn->privateData;
- int n;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(driver->domains, driver);
- n = virDomainObjListNumOfDomains(driver->domains, false, NULL, NULL);
- vmwareDriverUnlock(driver);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, false, NULL, NULL);
}
static int
vmwareConnectNumOfDomains(virConnectPtr conn)
{
struct vmware_driver *driver = conn->privateData;
- int n;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(driver->domains, driver);
- n = virDomainObjListNumOfDomains(driver->domains, true, NULL, NULL);
- vmwareDriverUnlock(driver);
-
- return n;
+ return virDomainObjListNumOfDomains(driver->domains, true, NULL, NULL);
}
vmwareConnectListDomains(virConnectPtr conn, int *ids, int nids)
{
struct vmware_driver *driver = conn->privateData;
- int n;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(driver->domains, driver);
- n = virDomainObjListGetActiveIDs(driver->domains, ids, nids, NULL, NULL);
- vmwareDriverUnlock(driver);
-
- return n;
+ return virDomainObjListGetActiveIDs(driver->domains, ids, nids, NULL, NULL);
}
static int
char **const names, int nnames)
{
struct vmware_driver *driver = conn->privateData;
- int n;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&driver->lock);
- vmwareDriverLock(driver);
vmwareDomainObjListUpdateAll(driver->domains, driver);
- n = virDomainObjListGetInactiveNames(driver->domains, names, nnames,
- NULL, NULL);
- vmwareDriverUnlock(driver);
- return n;
+ return virDomainObjListGetInactiveNames(driver->domains, names, nnames,
+ NULL, NULL);
}
static int
virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
- vmwareDriverLock(driver);
- vmwareDomainObjListUpdateAll(driver->domains, driver);
- ret = virDomainObjListExport(driver->domains, conn, domains,
- NULL, flags);
- vmwareDriverUnlock(driver);
+ VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) {
+ vmwareDomainObjListUpdateAll(driver->domains, driver);
+ ret = virDomainObjListExport(driver->domains, conn, domains,
+ NULL, flags);
+ }
+
return ret;
}