On 04/10/2012 09:05 AM, Jiri Denemark wrote:
qemuDomainObjEnterMonitor{,WithDriver} should not be called from
async
jobs, only EnterMonitorAsync variant is allowed.
---
src/qemu/qemu_domain.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 7f1f8ee..4dda2e0 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);
virThreadSelfID() is not bullet-proof (it returns int, but there are
platforms with 64-bit thread ids); but it is adequate for our purposes
(you only check it for issuing a warning, rather than actually erroring
out, and on our common development platform of Linux, it does the right
thing).
ACK series.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org