On Tue, 2007-02-20 at 19:40 +0000, Daniel P. Berrange wrote:
On Tue, Feb 20, 2007 at 07:26:03PM +0000, Mark McLoughlin wrote:
> Merge the ->activevms and ->inactivevms into a single
> ->vms list where each VM has a "active" flag in order
> to make things easier to manage.
I'm sure I had some interesting reason for keeping the lists separate
when i wrote this. Damned if I can think of what it was now :-) The
patch does seem to make things simpler. Having an explicit 'active'
flag though is redundant. Simply check for 'vm->id == -1' or equivalently
the 'vm->pid == -1'. We don't need a 3rd flag to mark inactivity :-)
Dunno, I much prefer the active flag purely for readability.
e.g.
while (vm) {
if (vm->id != -1)
shutdown(vm);
vm = vm->next;
}
would make me carefully check whether ->id means active the first time
I see it and
while (vm) {
if (vm->pid != -1)
shutdown(vm);
vm = vm->next;
}
would make me check *every* time I see it, whereas I'd never feel the
need to verify this:
while (vm) {
if (vm->active)
shutdown(vm);
vm = vm->next;
}
i.e. several times already when tracking down bugs I've felt suspicious
about whether ((id != -1) != active) in places ...
Perhaps we just need a macro or static inline:
static inline
qemudIsActiveVM(struct qemud_vm *vm)
{
return vm->id != -1;
}
Cheers,
Mark.