From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbRtq-0005KZ-1d for qemu-devel@nongnu.org; Tue, 07 Oct 2014 06:21:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XbRtj-0004WQ-Tb for qemu-devel@nongnu.org; Tue, 07 Oct 2014 06:21:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13593) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbRtj-0004WG-MH for qemu-devel@nongnu.org; Tue, 07 Oct 2014 06:21:39 -0400 Date: Tue, 7 Oct 2014 11:21:26 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20141007102125.GF2404@work-vm> References: <1412358473-31398-1-git-send-email-dgilbert@redhat.com> <1412358473-31398-20-git-send-email-dgilbert@redhat.com> <5430247B.6080706@redhat.com> <20141007085841.GC2404@work-vm> <5433BC75.5000703@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5433BC75.5000703@redhat.com> Subject: Re: [Qemu-devel] [PATCH v4 19/47] Rework loadvm path for subloops List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: aarcange@redhat.com, yamahata@private.email.ne.jp, lilei@linux.vnet.ibm.com, quintela@redhat.com, cristian.klein@cs.umu.se, qemu-devel@nongnu.org, amit.shah@redhat.com, yanghy@cn.fujitsu.com * Paolo Bonzini (pbonzini@redhat.com) wrote: > Il 07/10/2014 10:58, Dr. David Alan Gilbert ha scritto: > > > >>> > > + if (exitcode & LOADVM_EXITCODE_QUITPARENT) { > >>> > > + DPRINTF("loadvm_handlers_state_main: End of loop with QUITPARENT"); > >>> > > + exitcode &= ~LOADVM_EXITCODE_QUITPARENT; > >>> > > + exitcode &= LOADVM_EXITCODE_QUITLOOP; > >> > > >> > Either you want |=, or the first &= is useless. > > Ooh nicely spotted; yes that should be |= - now I need to figure out why this > > didn't break things. > > > > The idea is we have: > > 1 outer loadvm_state loop > > 2 receives packaged command > > 3 inner_loadvm_state loop > > 4 receives handle_listen > > 5 < QUITPARENT > > 6 < QUITLOOP > > 7 < QUITLOOP > > 8 exits > > > > so QUITPARENT causes it's parent to exit, and to do that > > the inner loop transforms QUITPARENT into QUITLOOP as it's > > exit. > > Yes, that was my understanding as well. > > We have only two nested loops, but if we had three, should it be > QUIT_PARENT or QUIT_ALL? The answer probably depends on why you've got 3 nested loops; either way is a bit of guesswork about what some potential future user wants to do. Dave -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK