Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-05-24 08:27:45

Andreas Huber <ah2003_at_[hidden]> writes:

>> >
>> > Ok, but how do you propose should the state machine then be terminated? By
>> > simply not calling the exit actions of still active states?
>> Yes, why not?
> Because that would essentially be the same as destructing an object by not
> calling its destructor (i.e. by only deallocating the memory).

That's circular logic.

> I'm not only saying this because an active state happens to be an
> object in boost::fsm. State machines frequently acquire resources
> in entry actions and dispose of them in exit actions. Those
> resources would simply be leaked if there's no guarantee that exit
> actions are called under all non-fatal error situations.

It seems reasonable that well-designed state objects should also
deallocate any resources they own in their destructors. It doesn't
neccessarily seem reasonable as a consequence to force all exit
actions into the state's destructor.

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at