mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
qemu: start/stop an event thread for QMP probing
In common with regular QEMU guests, the QMP probing will need an event loop for handling monitor I/O operations. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
e6afacb0fe
commit
92890fbfa1
@ -8373,6 +8373,9 @@ qemuProcessQMPFree(qemuProcessQMPPtr proc)
|
||||
return;
|
||||
|
||||
qemuProcessQMPStop(proc);
|
||||
|
||||
g_object_unref(proc->eventThread);
|
||||
|
||||
VIR_FREE(proc->binary);
|
||||
VIR_FREE(proc->libDir);
|
||||
VIR_FREE(proc->uniqDir);
|
||||
@ -8404,6 +8407,8 @@ qemuProcessQMPNew(const char *binary,
|
||||
{
|
||||
qemuProcessQMPPtr ret = NULL;
|
||||
qemuProcessQMPPtr proc = NULL;
|
||||
const char *threadSuffix;
|
||||
g_autofree char *threadName = NULL;
|
||||
|
||||
VIR_DEBUG("exec=%s, libDir=%s, runUid=%u, runGid=%u, forceTCG=%d",
|
||||
binary, libDir, runUid, runGid, forceTCG);
|
||||
@ -8418,6 +8423,16 @@ qemuProcessQMPNew(const char *binary,
|
||||
proc->runGid = runGid;
|
||||
proc->forceTCG = forceTCG;
|
||||
|
||||
threadSuffix = strrchr(binary, '-');
|
||||
if (threadSuffix)
|
||||
threadSuffix++;
|
||||
else
|
||||
threadSuffix = binary;
|
||||
threadName = g_strdup_printf("qmp-%s", threadSuffix);
|
||||
|
||||
if (!(proc->eventThread = virEventThreadNew(threadName)))
|
||||
goto cleanup;
|
||||
|
||||
ret = g_steal_pointer(&proc);
|
||||
|
||||
cleanup:
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "qemu_conf.h"
|
||||
#include "qemu_domain.h"
|
||||
#include "virstoragefile.h"
|
||||
#include "vireventthread.h"
|
||||
|
||||
int qemuProcessPrepareMonitorChr(virDomainChrSourceDefPtr monConfig,
|
||||
const char *domainDir);
|
||||
@ -217,6 +218,7 @@ struct _qemuProcessQMP {
|
||||
char *monpath;
|
||||
char *pidfile;
|
||||
char *uniqDir;
|
||||
virEventThread *eventThread;
|
||||
virCommandPtr cmd;
|
||||
qemuMonitorPtr mon;
|
||||
pid_t pid;
|
||||
|
Loading…
x
Reference in New Issue
Block a user