From 6eede368bc8e3df2c94c2ec1a913885ce08e99db Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Tue, 10 Apr 2012 16:39:33 +0200 Subject: [PATCH] qemu: Warn on possibly incorrect usage of EnterMonitor* qemuDomainObjEnterMonitor{,WithDriver} should not be called from async jobs, only EnterMonitorAsync variant is allowed. --- src/qemu/qemu_domain.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7f1f8eef5..4dda2e074 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -975,6 +975,9 @@ qemuDomainObjEnterMonitorInternal(struct qemud_driver *driver, _("unexpected async job %d"), asyncJob); return -1; } + if (priv->job.asyncOwner != virThreadSelfID()) + VIR_WARN("This thread doesn't seem to be the async job owner: %d", + priv->job.asyncOwner); if (qemuDomainObjBeginJobInternal(driver, driver_locked, obj, QEMU_JOB_ASYNC_NESTED, QEMU_ASYNC_JOB_NONE) < 0) @@ -986,6 +989,9 @@ qemuDomainObjEnterMonitorInternal(struct qemud_driver *driver, ignore_value(qemuDomainObjEndJob(driver, obj)); return -1; } + } else if (priv->job.asyncOwner == virThreadSelfID()) { + VIR_WARN("This thread seems to be the async job owner; entering" + " monitor without asking for a nested job is dangerous"); } qemuMonitorLock(priv->mon); -- 2.39.5