
At 03/30/2011 01:48 PM, Hu Tao Write:
On Wed, Mar 30, 2011 at 12:34:47PM +0800, Wen Congyang wrote:
--- src/qemu/qemu_driver.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dd12dc8..f843dc8 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -628,10 +628,14 @@ qemudStartup(int privileged) {
qemuAutostartDomains(qemu_driver);
+ /* Lock qemu_drive again as we will modify it */ + qemuDriverLock(qemu_driver); qemu_driver->workerPool = virThreadPoolNew(0, 1, processWatchdogEvent, qemu_driver); if (!qemu_driver->workerPool) goto error;
+ qemuDriverUnlock(qemu_driver); + if (conn) virConnectClose(conn);
-- 1.7.1
Looks strange although it's right, What about this?
Hmm, we must create workerPool before auto starting domains, because we may use this pool during auto starting domains. I will send v2.
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 104e92d..91432ed 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -624,14 +624,14 @@ qemudStartup(int privileged) { virHashForEach(qemu_driver->domains.objs, qemuDomainSnapshotLoad, qemu_driver->snapshotDir);
- qemuDriverUnlock(qemu_driver); - - qemuAutostartDomains(qemu_driver); - qemu_driver->workerPool = virThreadPoolNew(0, 1, processWatchdogEvent, qemu_driver); if (!qemu_driver->workerPool) goto error;
+ qemuDriverUnlock(qemu_driver); + + qemuAutostartDomains(qemu_driver); + if (conn) virConnectClose(conn);