]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_agent: Use automatic mutex management
authorTim Wiederhake <twiederh@redhat.com>
Thu, 24 Mar 2022 12:13:14 +0000 (13:13 +0100)
committerTim Wiederhake <twiederh@redhat.com>
Tue, 5 Apr 2022 13:59:08 +0000 (15:59 +0200)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_agent.c

index 4909fb336f496bd2072a2d65b82f205ba480af63..4156cb0dca757ad8d606928d691ed0b365e4c813 100644 (file)
@@ -679,9 +679,9 @@ qemuAgentNotifyClose(qemuAgent *agent)
 
     VIR_DEBUG("agent=%p", agent);
 
-    virObjectLock(agent);
-    qemuAgentNotifyCloseLocked(agent);
-    virObjectUnlock(agent);
+    VIR_WITH_OBJECT_LOCK_GUARD(agent) {
+        qemuAgentNotifyCloseLocked(agent);
+    }
 }
 
 
@@ -692,17 +692,16 @@ void qemuAgentClose(qemuAgent *agent)
 
     VIR_DEBUG("agent=%p", agent);
 
-    virObjectLock(agent);
+    VIR_WITH_OBJECT_LOCK_GUARD(agent) {
+        if (agent->socket) {
+            qemuAgentUnregister(agent);
+            g_clear_pointer(&agent->socket, g_object_unref);
+            agent->fd = -1;
+        }
 
-    if (agent->socket) {
-        qemuAgentUnregister(agent);
-        g_clear_pointer(&agent->socket, g_object_unref);
-        agent->fd = -1;
+        qemuAgentNotifyCloseLocked(agent);
     }
 
-    qemuAgentNotifyCloseLocked(agent);
-    virObjectUnlock(agent);
-
     virObjectUnref(agent);
 }
 
@@ -1125,7 +1124,7 @@ qemuAgentMakeStringsArray(const char **strings, unsigned int len)
 void qemuAgentNotifyEvent(qemuAgent *agent,
                           qemuAgentEvent event)
 {
-    virObjectLock(agent);
+    VIR_LOCK_GUARD lock = virObjectLockGuard(agent);
 
     VIR_DEBUG("agent=%p event=%d await_event=%d", agent, event, agent->await_event);
     if (agent->await_event == event) {
@@ -1136,8 +1135,6 @@ void qemuAgentNotifyEvent(qemuAgent *agent,
             virCondSignal(&agent->notify);
         }
     }
-
-    virObjectUnlock(agent);
 }
 
 VIR_ENUM_DECL(qemuAgentShutdownMode);