Ok, I was thinking that you were equating cancellation with interruption. My reference to a stop() function was meant as a placeholder for any kind of function (other than cancellation or interruption) that tells an active object to quit processing and clean up after itself. A function like that is needed if cancellation/interruption aren't available.
Ok.
So, would the following statements be true?
- boost::statechart imposes no requirements on do-activity threads, other than that they stop when instructed to (by whatever means) and that they clean up after themselves.
Correct.
- Any timing requirements on how quickly the thread actually exits are determined by the design of the application; boost::statechart itself imposes no such requirements.
Right. I'm sure you already know that but a thing to remember is that stopping/cancelling a thread can be a relatively lengthy process, which is why I added the exclamation mark in the docs. HTH, -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.