};
struct _virNetworkObjList {
- virObjectLockable parent;
+ virObjectRWLockable parent;
virHashTablePtr objs;
};
virNetworkObjDispose)))
return -1;
- if (!(virNetworkObjListClass = virClassNew(virClassForObjectLockable(),
+ if (!(virNetworkObjListClass = virClassNew(virClassForObjectRWLockable(),
"virNetworkObjList",
sizeof(virNetworkObjList),
virNetworkObjListDispose)))
if (virNetworkObjInitialize() < 0)
return NULL;
- if (!(nets = virObjectLockableNew(virNetworkObjListClass)))
+ if (!(nets = virObjectRWLockableNew(virNetworkObjListClass)))
return NULL;
if (!(nets->objs = virHashCreate(50, virObjectFreeHashData))) {
{
virNetworkObjPtr obj;
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
obj = virNetworkObjFindByUUIDLocked(nets, uuid);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
if (obj)
virObjectLock(obj);
return obj;
{
virNetworkObjPtr obj;
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
obj = virNetworkObjFindByNameLocked(nets, name);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
if (obj)
virObjectLock(obj);
return obj;
{
virNetworkObjPtr obj;
- virObjectLock(nets);
+ virObjectRWLockWrite(nets);
obj = virNetworkObjAssignDefLocked(nets, def, flags);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
return obj;
}
virUUIDFormat(obj->def->uuid, uuidstr);
virObjectRef(obj);
virObjectUnlock(obj);
- virObjectLock(nets);
+ virObjectRWLockWrite(nets);
virObjectLock(obj);
virHashRemoveEntry(nets->objs, uuidstr);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
virObjectUnref(obj);
}
virNetworkObjPtr obj;
struct virNetworkObjBridgeInUseHelperData data = {bridge, skipname};
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
obj = virHashSearch(nets->objs, virNetworkObjBridgeInUseHelper, &data, NULL);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
return obj != NULL;
}
.conn = conn, .nets = NULL, .filter = filter, .flags = flags,
.nnets = 0, .error = false };
- virObjectLock(netobjs);
+ virObjectRWLockRead(netobjs);
if (nets && VIR_ALLOC_N(data.nets, virHashSize(netobjs->objs) + 1) < 0)
goto cleanup;
ret = data.nnets;
cleanup:
- virObjectUnlock(netobjs);
+ virObjectRWUnlock(netobjs);
while (data.nets && data.nnets)
virObjectUnref(data.nets[--data.nnets]);
{
struct virNetworkObjListForEachHelperData data = {
.callback = callback, .opaque = opaque, .ret = 0};
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
virHashForEach(nets->objs, virNetworkObjListForEachHelper, &data);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
return data.ret;
}
.conn = conn, .filter = filter, .names = names, .nnames = 0,
.maxnames = maxnames, .active = active, .error = false};
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
virHashForEach(nets->objs, virNetworkObjListGetHelper, &data);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
if (data.error)
goto cleanup;
.conn = conn, .filter = filter, .names = NULL, .nnames = 0,
.maxnames = -1, .active = active, .error = false};
- virObjectLock(nets);
+ virObjectRWLockRead(nets);
virHashForEach(nets->objs, virNetworkObjListGetHelper, &data);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
return data.nnames;
}
{
struct virNetworkObjListPruneHelperData data = {flags};
- virObjectLock(nets);
+ virObjectRWLockWrite(nets);
virHashRemoveSet(nets->objs, virNetworkObjListPruneHelper, &data);
- virObjectUnlock(nets);
+ virObjectRWUnlock(nets);
}