title: Handling Interrupt in C++
body: <p>I am writing a framework for an embedded device which has the ability to run multiple applications.  When switching between apps how can I ensure that the state of my current application is cleaned up correctly?  For example, say I am running through an intensive loop in one application and a request is made to run a second app while that loop has not yet finished.  I cannot delete the object containing the loop until the loop has finished, yet I am unsure how to ensure the looping object is in a state ready to be deleted.  Do I need some kind of polling mechanism or event callback which notifies me when it has completed?</p>
  
  <p>Thanks.</p>