> Stepping back a bit, I think our big concern
> is ending up in the wrong state - we're processing
> event A, and as a consequence move into
> state X, but meanwhile sitting in the event
> queue is a state change event moving us
> into state Y. Have I got this right?
Yep, that's exactly right.  Furthermore, state X may not be reachable 
from state Y, which I think is the main problem.

> Could someone provide an example of the sort
> of problem that can occur - I'm a bit confused
> I'm afraid, and a concrete example might help.
> Thanks!
11103 is sort of an example of this.  The ncu is already online.  When 
dhcp times out, we originally moved to offline*.  My fix checks to make 
sure the ncu is not already online.  If it is online, don't create the 
state change event, otherwise create the event that changes to offline*.

This fix is still not complete.  The ncu could be in offline* state and 
the online state event could be in the queue.  In this case, the timed 
out event is still enqueued.  The NCU changes to online and then 
offline* state.

Anurag

Reply via email to