]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_process: Hide qemuProcessQMPStop
authorJiri Denemark <jdenemar@redhat.com>
Wed, 13 Feb 2019 16:18:51 +0000 (17:18 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 19 Feb 2019 17:44:39 +0000 (18:44 +0100)
Users qemuProcessQMP struct were always forced to call both
qemuProcessQMPStop and qemuProcessQMPFree when they are done with the
process. We can just call qemuProcessQMPStop from qemuProcessQMPFree and
let users call qemuProcessQMPFree only.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_process.c
src/qemu/qemu_process.h

index 4fd2169d493016558eadc15489f5d1040040e35c..a546d9b5a1621c9af7c4a74451f2a4557fc9f436 100644 (file)
@@ -4397,7 +4397,6 @@ virQEMUCapsInitQMPSingle(virQEMUCapsPtr qemuCaps,
     if (ret < 0)
         virQEMUCapsLogProbeFailure(qemuCaps->binary);
 
-    qemuProcessQMPStop(proc);
     qemuProcessQMPFree(proc);
     return ret;
 }
index b5d127b7d39df6e83522d1125e2d4eb088a03326..ca5911bacd8ce54fd70a9f82cc0e59929ad8d490 100644 (file)
@@ -8324,6 +8324,49 @@ static qemuMonitorCallbacks callbacks = {
 };
 
 
+static void
+qemuProcessQMPStop(qemuProcessQMPPtr proc)
+{
+    if (proc->mon) {
+        virObjectUnlock(proc->mon);
+        qemuMonitorClose(proc->mon);
+        proc->mon = NULL;
+    }
+
+    if (proc->cmd) {
+        virCommandAbort(proc->cmd);
+        virCommandFree(proc->cmd);
+        proc->cmd = NULL;
+    }
+
+    if (proc->monpath)
+        unlink(proc->monpath);
+
+    virDomainObjEndAPI(&proc->vm);
+
+    if (proc->pid != 0) {
+        char ebuf[1024];
+
+        VIR_DEBUG("Killing QMP caps process %lld", (long long)proc->pid);
+        if (virProcessKill(proc->pid, SIGKILL) < 0 && errno != ESRCH)
+            VIR_ERROR(_("Failed to kill process %lld: %s"),
+                      (long long)proc->pid,
+                      virStrerror(errno, ebuf, sizeof(ebuf)));
+
+        proc->pid = 0;
+    }
+
+    if (proc->pidfile)
+        unlink(proc->pidfile);
+}
+
+
+/**
+ * qemuProcessQMPFree:
+ * @proc: Stores process and connection state
+ *
+ * Kill QEMU process and free process data structure.
+ */
 void
 qemuProcessQMPFree(qemuProcessQMPPtr proc)
 {
@@ -8535,7 +8578,6 @@ qemuProcessQMPConnectMonitor(qemuProcessQMPPtr proc)
  *   proc = qemuProcessQMPNew(binary, libDir, runUid, runGid, forceTCG);
  *   qemuProcessQMPStart(proc);
  *   ** Send QMP Queries to QEMU using monitor (proc->mon) **
- *   qemuProcessQMPStop(proc);
  *   qemuProcessQMPFree(proc);
  *
  * Process error output (proc->stderr) remains available in qemuProcessQMP
@@ -8552,57 +8594,13 @@ qemuProcessQMPStart(qemuProcessQMPPtr proc)
         goto cleanup;
 
     if (qemuProcessQMPLaunch(proc) < 0)
-        goto stop;
+        goto cleanup;
 
     if (qemuProcessQMPConnectMonitor(proc) < 0)
-        goto stop;
+        goto cleanup;
 
     ret = 0;
 
  cleanup:
     return ret;
-
- stop:
-    qemuProcessQMPStop(proc);
-    goto cleanup;
-}
-
-
-void
-qemuProcessQMPStop(qemuProcessQMPPtr proc)
-{
-    if (!proc)
-        return;
-
-    if (proc->mon) {
-        virObjectUnlock(proc->mon);
-        qemuMonitorClose(proc->mon);
-        proc->mon = NULL;
-    }
-
-    if (proc->cmd) {
-        virCommandAbort(proc->cmd);
-        virCommandFree(proc->cmd);
-        proc->cmd = NULL;
-    }
-
-    if (proc->monpath)
-        unlink(proc->monpath);
-
-    virDomainObjEndAPI(&proc->vm);
-
-    if (proc->pid != 0) {
-        char ebuf[1024];
-
-        VIR_DEBUG("Killing QMP caps process %lld", (long long)proc->pid);
-        if (virProcessKill(proc->pid, SIGKILL) < 0 && errno != ESRCH)
-            VIR_ERROR(_("Failed to kill process %lld: %s"),
-                      (long long)proc->pid,
-                      virStrerror(errno, ebuf, sizeof(ebuf)));
-
-        proc->pid = 0;
-    }
-
-    if (proc->pidfile)
-        unlink(proc->pidfile);
 }
index 2422d1eb7c4e8970cc40152e30e1f4084a3852da..c435a1972687f6383cf957e1a41fa47cff2ae2d1 100644 (file)
@@ -242,6 +242,4 @@ void qemuProcessQMPFree(qemuProcessQMPPtr proc);
 
 int qemuProcessQMPStart(qemuProcessQMPPtr proc);
 
-void qemuProcessQMPStop(qemuProcessQMPPtr proc);
-
 #endif /* LIBVIRT_QEMU_PROCESS_H */