Sam Lang wrote:

On Jul 24, 2006, at 2:07 PM, Pete Wyckoff wrote:

[EMAIL PROTECTED] wrote on Mon, 24 Jul 2006 14:47 -0400:

3) the state machine language has a keyword that lets you state that the
next state is "terminate" which could be used to finish the state
machine, but right now the code has logic that detects this and prints a
warning that you should NOT use this.  I don't know why we created  this
method and then made it illegal.  Go figure!


I prefer #3 by a large margin over the other options.  It's
explicit, not racy, doesn't over-use the return value for a
conceptually different event, and doesn't rely on modifying
parent state.  Wonder why it was disabled.

I think terminate ended up being more of a placeholder...we still use it in quite a few of our state machines, but the last state action is expected to call server_state_machine_complete which prevents the SM from transitioning to the 'terminate' state. I've thought of it as an assert: if you get here you're forgetting something.

Just for historical reference, the terminate state was never really used in pvfs2- it wasn't that it was disabled or illegal. It was just that the completion functions destroyed the sm before it got to that point. I think I added the safety check later on because we had a few "runaway state machine" bugs where sms weren't calling their completion functions on the way out. The terminate transition ended up being a good place to catch that sort of problem since the pvfs2 state machines that worked properly were never supposed to hit it.

I think nowadays a better way to track down that sort of problem would be with a state machine dumper utility (like the one Derek Horton started but we never got around to polishing up) because something like that could point out runaway state machines even if they get lost somewhere before termination. I don't know if you have any interest in something like that, Walt, but you might want to have a look at what those patches did to see if there is a cleaner way to implement something along those lines with your new infrastructure changes.

Anyway, I agree with all of the comments from Walt, Sam, and Pete- it sounds like this stuff will be a lot cleaner.


-Phil

_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to