mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
util: Introduce virObjectGetLockableObj
Split out the object fetch in virObject{Lock|Unlock} into a helper Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
209a95e354
commit
10c2bb2b19
@ -309,6 +309,22 @@ virObjectRef(void *anyobj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virObjectLockablePtr
|
||||||
|
virObjectGetLockableObj(void *anyobj)
|
||||||
|
{
|
||||||
|
virObjectPtr obj;
|
||||||
|
|
||||||
|
if (virObjectIsClass(anyobj, virObjectLockableClass))
|
||||||
|
return anyobj;
|
||||||
|
|
||||||
|
obj = anyobj;
|
||||||
|
VIR_WARN("Object %p (%s) is not a virObjectLockable instance",
|
||||||
|
anyobj, obj ? obj->klass->name : "(unknown)");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virObjectLock:
|
* virObjectLock:
|
||||||
* @anyobj: any instance of virObjectLockablePtr
|
* @anyobj: any instance of virObjectLockablePtr
|
||||||
@ -324,13 +340,10 @@ virObjectRef(void *anyobj)
|
|||||||
void
|
void
|
||||||
virObjectLock(void *anyobj)
|
virObjectLock(void *anyobj)
|
||||||
{
|
{
|
||||||
virObjectLockablePtr obj = anyobj;
|
virObjectLockablePtr obj = virObjectGetLockableObj(anyobj);
|
||||||
|
|
||||||
if (!virObjectIsClass(obj, virObjectLockableClass)) {
|
if (!obj)
|
||||||
VIR_WARN("Object %p (%s) is not a virObjectLockable instance",
|
|
||||||
obj, obj ? obj->parent.klass->name : "(unknown)");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
virMutexLock(&obj->lock);
|
virMutexLock(&obj->lock);
|
||||||
}
|
}
|
||||||
@ -346,13 +359,10 @@ virObjectLock(void *anyobj)
|
|||||||
void
|
void
|
||||||
virObjectUnlock(void *anyobj)
|
virObjectUnlock(void *anyobj)
|
||||||
{
|
{
|
||||||
virObjectLockablePtr obj = anyobj;
|
virObjectLockablePtr obj = virObjectGetLockableObj(anyobj);
|
||||||
|
|
||||||
if (!virObjectIsClass(obj, virObjectLockableClass)) {
|
if (!obj)
|
||||||
VIR_WARN("Object %p (%s) is not a virObjectLockable instance",
|
|
||||||
obj, obj ? obj->parent.klass->name : "(unknown)");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
virMutexUnlock(&obj->lock);
|
virMutexUnlock(&obj->lock);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user