* Paolo Bonzini (pbonz...@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 / dgilb...@redhat.com / Manchester, UK