From e1ccda362c53c6d18d8ab0fc42fdeda3f0d21e6b Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Mon, 10 Oct 2011 11:07:30 +0200 Subject: [PATCH] dom0/qvm-core: release lock in VM.start() right before starting qrexec (#344) --- dom0/qvm-core/qubes.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dom0/qvm-core/qubes.py b/dom0/qvm-core/qubes.py index 8f777bd1..4f0c7868 100755 --- a/dom0/qvm-core/qubes.py +++ b/dom0/qvm-core/qubes.py @@ -1052,6 +1052,13 @@ class QubesVm(object): print >> sys.stderr, "--> Starting the VM..." xc.domain_unpause(xid) +# close() is not really needed, because the descriptor is close-on-exec +# anyway, the reason to postpone close() is that possibly xl is not done +# constructing the domain after its main process exits +# so we close() when we know the domain is up +# the successful unpause is some indicator of it + qmemman_client.close() + if not preparing_dvm: if verbose: print >> sys.stderr, "--> Starting the qrexec daemon..." @@ -1060,13 +1067,6 @@ class QubesVm(object): self.force_shutdown() raise OSError ("ERROR: Cannot execute qrexec_daemon!") -# close() is not really needed, because the descriptor is close-on-exec -# anyway, the reason to postpone close() is that possibly xl is not done -# constructing the domain after its main process exits -# so we close() when we know the domain is up -# the successful qrexec connect is a good indicator of it - qmemman_client.close() - if preparing_dvm: if verbose: print >> sys.stderr, "--> Preparing config template for DispVM"